用于从文本文件中提取数据的Matlab脚本

时间:2016-02-19 10:33:38

标签: database matlab matrix slice

我试图从多个数据集中提取原子的坐标 文本文件的格式如下:

    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

我非常感谢任何帮助。

1 个答案:

答案 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