从文本文件中提取数据的 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
我正在尝试从多个数据集中提取原子的坐标。
文本文件的格式如下:
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