我正在尝试将以 a01.dat、a02.dat...a51.dat 的形式命名的“.dat”编号序列加载到 MATLAB 中。我在下面的代码中使用了 eval() 函数。
%% To load each ".dat" file for the 51 attributes to an array.
a = dir('*.dat');
for i = 1:length(a)
eval(['load ' a(i).name ' -ascii']);
end
attributes = length(a);
我遇到了问题,因为我无法轻松地操作使用 eval 函数加载的数据。我发现社区强烈反对使用 eval。我将 csvread() 与下面的代码一起使用。
% Scan folder for number of ".dat" files
datfiles = dir('*.dat');
% Count Number of ".dat" files
numfiles = length(datfiles);
% Read files in to MATLAB
for i = 1:1:numfiles
A{i} = csvread(datfiles(i).name);
end
csvread() 对我有用,但它读取文件但在读取文件时弄乱了顺序。它首先读取 a01.dat,然后读取 a10.dat 和 a11.dat 等等,而不是 a01.dat、a02.dat... 每个文件的内容都是带符号的数字。有些是逗号分隔的单列,这是一个偶数拆分。所以a01.dat 的内容是用逗号分隔的,a02.dat 的内容在一个列中。
请问我该如何处理?