使用Matlab查找具有相同标题的多个数组中的行并删除所有其他行

时间:2012-11-09 21:23:40

标签: matlab

在Matlab中,我有几个已加载并转换为矩阵的txt文件。矩阵代表世界各地不同城市的温度数据。每个矩阵的第一列是一年。每个文件跨越不同的年份范围,但它们在这些年中的几个都重叠。我想找到重叠的位置,并提取出(或删除不重叠的年份),这样当我绘制数据时,每个数据集使用的是相同的年数。代码应该能够摄取未知数量的这些txt文件。我试图使用“交叉”函数,但这将在逐个元素的基础上工作。我想要所有数据重叠年份,因此元素(标题除外)将是不同的。

当前代码的示例:

clear all 
files = dir('.txt'); 
num_files = length(files); 
mintersect(files); 
for i=1:num_files 
    eval(['load ' files(i).name ' -ascii']); 
    vals{i} = load(files(i).name); 
    matrix = vals{i}; 
    station = (files(i).name(1:end-4)); 
    matrix(matrix == 999.9) = NaN; 
    matrix(matrix == -99.0) = NaN; 
    years = matrix(:,1); 
    months = matrix(:,2:13)'; 
    figure, hold on 
    plot(years, months,''); 
    ylabel('Temp.'); 
    xlabel('Years'); 
    grid on; 
    title(sprintf('Mean Monthly Temperature for %s Station',station)); 
end

0 个答案:

没有答案