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

Matlab script to extract data from text files

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

    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

如有任何帮助,我将不胜感激。

这行不通:

...
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