我试图从多个数据集中提取原子的坐标 文本文件的格式如下:
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
...
现在我正在尝试将第一行O的6个值提取到带有for循环的单独数组,但我只是得到一条错误消息。这是我目前的剧本:
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 :(得分: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