0
我的CSV文件是A1a(1:853,1:853)
類型的光譜數據。 第1列包含波長信息,第2列包含強度信息。如何加載多個CSV文件並存儲在數組中?
我有多個CSV文件的文件夾,在A1a, A1b, A1c.....A1k.csv
和我想這些文件存儲在使用csvread
類型A(10,1:853,1:853)
的陣列和for
循環。
我該怎麼做?
我的CSV文件是A1a(1:853,1:853)
類型的光譜數據。 第1列包含波長信息,第2列包含強度信息。如何加載多個CSV文件並存儲在數組中?
我有多個CSV文件的文件夾,在A1a, A1b, A1c.....A1k.csv
和我想這些文件存儲在使用csvread
類型A(10,1:853,1:853)
的陣列和for
循環。
我該怎麼做?
您可以使用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
。