2015-10-07 69 views
0

我的CSV文件是A1a(1:853,1:853)类型的光谱数据。 第1列包含波长信息,第2列包含强度信息。如何加载多个CSV文件并存储在数组中?

我有多个CSV文件的文件夹,在A1a, A1b, A1c.....A1k.csv和我想这些文件存储在使用csvread类型A(10,1:853,1:853)的阵列和for循环。

我该怎么做?

回答

0

您可以使用dirdlmread(或csvreaddlmread的包装)来读取您的数据。此示例假设每个数据文件的大小是均匀的,你知道你的数据的确切结构:

% 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.csvmydata(:,:,2)A1b.csv,并mydata(:,:,3)A1c.csv

相关问题