Arrays 如何加载多个CSV文件并存储在阵列中?

Arrays 如何加载多个CSV文件并存储在阵列中?,arrays,matlab,csv,Arrays,Matlab,Csv,我的CSV文件是A1a(1:853,1:853)类型的光谱数据。 第1列包含波长信息,第2列包含强度信息 我在一个文件夹中有多个CSV文件,A1a、A1b、A1c…..A1k.CSV,我想使用csvread和for循环将这些文件存储在a(10,1:853,1:853)类型的数组中 我该怎么做 您可以使用dir和dlmread(或csvread,一个dlmread的包装器)来读取数据。本例假设每个数据文件的大小是一致的,并且您知道数据的确切结构: % Generate some sample da

我的CSV文件是
A1a(1:853,1:853)
类型的光谱数据。 第1列包含波长信息,第2列包含强度信息

我在一个文件夹中有多个CSV文件,
A1a、A1b、A1c…..A1k.CSV
,我想使用
csvread
for
循环将这些文件存储在
a(10,1:853,1:853)
类型的数组中


我该怎么做

您可以使用
dir
dlmread
(或
csvread
,一个
dlmread
的包装器)来读取数据。本例假设每个数据文件的大小是一致的,并且您知道数据的确切结构:

% Generate some sample data
fID = fopen('A1a.csv', 'w');
fprintf(fID, '%u,%u,%u\n', repmat(1:5, 3, 1));
fclose(fID);

fID = fopen('A1b.csv', 'w');
fprintf(fID, '%u,%u,%u\n', repmat(6:10, 3, 1));
fclose(fID);

fID = fopen('A1c.csv', 'w');
fprintf(fID, '%u,%u,%u\n', repmat(11:15, 3, 1));
fclose(fID);

% Preallocate array if you know for sure how your data is structured
nfiles = 3;
nrows = 5;
ncols = 3;
mydata = zeros(nrows, ncols, nfiles);

% Read in your data
nheaderlines = 0;
nskipcolumns = 0;
filestoread = dir('A1*.csv');

for ii = 1:length(filestoread)
    mydata(:, :, ii) = dlmread(filestoread(ii).name, ',', nheaderlines, nskipcolumns);
end
这将
mydata
作为
[5x3x3]
数组,其中
mydata(:,:,1)
A1a.csv
mydata(:,:,2)
A1b.csv
,而
mydata(:,:,3)
A1c.csv