我想阅读多个文本文件。每个文本文件都有两列。所有文本文件的所有两列都具有相同的行。我想知道,在MATLAB中,如何读取每个文本文件然后逐个读取每一列,从另一列中减去一列数据,然后读取下一个文件,依此类推。我编写了以下代码,但我在代码中缺少一些步骤。我感谢您的支持。谢谢大家。
for k = 1:9
filename = sprintf('Data_F_Ind000%d.txt',k);
a(:,k) = load(filename);
x = a(:,1)};
y = a(:,2);
z = x - y;
end
答案 0 :(得分:1)
data = cell(9,1) ;
diff_data = cell(9,1) ;
for k = 1:9
filename = sprintf('Data_F_Ind000%d.txt',k);
a = load(filename);
data{i} = a ;
x = a(:,1)};
y = a(:,2);
diff_data{i} = x - y;
end
答案 1 :(得分:0)
您可以通过多种方式完成此操作。我想你想用z
做一些事情,而不是每次都扔掉它。我会利用访问模式来做到这一点。
numFiles = 9;
numRows = ....; % not required but used to preallocate the a matrix
pattern = 1:2:numFiles * 2; % create a vector of 1 3 5 ...
a = zeros(numRows, numFiles * 2);
z = zeros(numRows, numFiles);
for k = 1:numFiles
fileName = sprintf('Data_F_Ind000%d.txt, 'k');
a(:,pattern(k):pattern(k) + 1) = load(fileName);
z(:,k) = a(:,pattern(k)) - a(:,pattern(k) + 1);
end
这是未经测试的,显然缺少一些数据但意图应该清楚。您不需要预先分配变量,但它有助于加快计算速度,因此我尽可能地尝试这样做。