Matlab:按列标题文本查找/写入多个文件中的数据

时间:2011-07-26 19:05:06

标签: matlab header

我有一个数组,我用importdata读入Matlab。它有5个标题行

file ='aoao.csv';
s = importdata(file,',',5);

Matlab会自动将最后一行视为列标题。然后,我可以调出我想要的列号 s.data(:,N); %n是所需的列号

我希望能够一次加载许多类似的文件,然后调用具有相同列标题名称的不同文件中的列(不一定是相同的列号)。我希望能够将所有这些列一起编写并导出到一个新的矩阵中,最好每列都用其文件名标记,

我该怎么办?

1 个答案:

答案 0 :(得分:0)

samp = 'len-c.mp3'; %# define desired sample/column header name  

file = dir('*.csv');

在主屏幕当前文件夹中准备好目录。这会创建文件的详细说明,

for i=1:length(file)  
    set(i) = importdata(file(i).name,',', 5);   
end  

这将从每个文件(逗号分隔,5个标题行)导入数据,并将其传输到名为“set”的单元格数组

for k = 1:14;  
    for i=1:length(set(k).colheaders)  
        TF = strcmp(set(k).colheaders(i),samp); %compares strings for match  
        if TF == 1; %if match is true  
        group(:,k) = set(k).data(:,i); %save matching column# to 'group'  
        end  
    end  
end  

这将从每个文件中的命名colheader中检索数据