2016-02-19 3 views
-1

Я пытаюсь извлечь координаты атома из нескольких наборов данных.
Текстовые файлы формата:Скрипт Matlab для извлечения данных из текстовых файлов

1234 
generated by l4zyMF 
O 1.234567 2.345678 3.456789 1.234567 2.345678 3.456789 
H 7.654321 8.765432 9.876543 7.654321 8.765432 9.876543 
... 

Сейчас я пытаюсь извлечь 6 значений для первой строки O в отдельный массив с для петли, но я просто получаю сообщение об ошибке , Вот мой текущий скрипт:

Oxy = zeros(200,7) 
for n=1:200 
    fid = fopen('your\dir\here.dat','rt'); 
    data = textscan(fid,'%s %f %f %f %f %f %f','headerLines',2); 
    fclose(fid); 

    Oxy(3,:) = (data); 
end 

Я бы очень признателен за любую помощь.

+0

Пожалуйста, добавьте данные и код на свой вопрос в письменной форме, чтобы мы могли попробовать. – MattSchmatt

+0

Кроме того, каково фактическое сообщение об ошибке, которое вы получаете? – MattSchmatt

ответ

1

Это не будет работать:

... 
Oxy(3,:) = (data) 
... 

Вы пытаетесь присвоить массив ячеек в матрице.
Также вам не обязательно нужен цикл для получения данных с помощью textscan.

Чтобы получить 200x6 матрицу из всех значений используйте cell2mat:

fid = fopen('your\dir\here.dat','rt'); 
data = textscan(fid,'%s %f %f %f %f %f %f','headerLines',2); 
fclose(fid); 
Oxy = cell2mat(data(2:end)) 

Oxy =

1.2346 2,3457 3,4568 1,2346 2,3457 3.4568
7,6543 8,7654 9.8765 7,6543 8,7654 9,8765

Смежные вопросы