我的代码发布在下面。它正是我需要它做的。MATLAB循环通过excel文件
它读入一个文件并绘制我需要的数据。如果我想读另一个文件并让它通过相同的代码,而不必用不同的变量再次编写整个文件,那可能吗?我想存储每个循环的矩阵。
正如你可以看到我得到的文件名为:Oxygen_1keV_300K.xlsx
我有叫另外一个文件:Oxygen_1keV_600K.xlsx
等。
如何循环浏览这些文件而不必重新编码整个事物?然后我想在同一个图上绘制它们。最好为每个文件存储最终的矩阵Y和Ymean,这样它们就不会被覆盖。
clear
clc
files = ['Oxygen_1keV_300K','Oxygen_1keV_300K','Oxygen_1keV_600K','Oxygen_1keV_900K'];
celldata = cellstr(file)
k = cell(1,24);
for k=1:24
data{k} = xlsread('C:\Users\Ben\Desktop\Oxygen_1keV_300K.xlsx',['PKA', num2str(k)]);
end
for i=1:24
xfinal{i}=data{1,i}(end,1);
xi{i}=0:0.001:xfinal{i};
xi{i}=transpose(xi{i});
x{i}=data{1,i}(:,1);
y{i}=data{1,i}(:,4);
yi{i} = interp1(x{i},y{i},xi{i});
end
Y = zeros(10001, numel(data));
for ii = 1 : numel(data)
Y(:, ii) = yi{ii}(1 : 10001);
end
Ymean = mean(Y, 2);
figure (1)
x=0:0.001:10;
semilogy(x,Ymean)
我建议使用['dir'](https://www.mathworks.com/help/matlab/ref/dir.html)或['ls'](https://www.mathworks.com/帮助/ matlab/ref/ls.html)函数来获取文件列表,然后使用for循环来遍历它们。 – Cecilia
我不想获取目录中的所有文件。我正在考虑创建Ymean {i}。我怎样才能给我想要循环的文件列表? – Jack
您也可以手动定义文件路径字符串的单元阵列,并循环执行。 – Cecilia