在 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