如何在MATLAB中为多个excel文件定义矩阵并运行循环?
我有200多个excel文件,上面有国家名称和年份。我希望Matlab将这些文件的特定表的特定范围定义为带有标题的矩阵(代码是为I-o表矩阵编写的),并为每个文件运行代码,并将每个文件的输出保存在单独的文件中。主要的问题是,我无法在循环中处理文件并同时为每个文件定义矩阵。 单个文件的代码如下所示如何在MATLAB中为多个excel文件定义矩阵并运行循环?,excel,matlab,loops,filenames,Excel,Matlab,Loops,Filenames,我有200多个excel文件,上面有国家名称和年份。我希望Matlab将这些文件的特定表的特定范围定义为带有标题的矩阵(代码是为I-o表矩阵编写的),并为每个文件运行代码,并将每个文件的输出保存在单独的文件中。主要的问题是,我无法在循环中处理文件并同时为每个文件定义矩阵。 单个文件的代码如下所示 function res=cb(a) a=[xlsread('aut2000.xls', 'domestic','B7:AV54')] a = a(any(a'),any(a))
function res=cb(a)
a=[xlsread('aut2000.xls', 'domestic','B7:AV54')]
a = a(any(a'),any(a))
...
多谢各位 如果没有关于如何在excel文件中定义范围的更多信息(即,范围是否有模式),很难给出具体建议,但最好的方法是在循环外的数组中定义矩阵,然后在循环中简单地引用条目:
files = {'file1.xls','file2.xls',...};
ranges = {'a7:d54','a6:f90',...};
function res=cb(files, ranges)
for n=1:length(files)
a = xlsread(files{n}, 'domestic', ranges{n});
end
您还可以链接结构(
files={{'file1.xls','a4:c89'},{'file2.xls','b7:d300'},…}
)并让函数在该结构中循环。非常感谢。但是matlab只为最后一个文件创建一个应答文件。如何查看所有文件及其标题的结果以区分它们?再次点击。@user1153825-没问题,如果你认为这个答案有帮助,请投赞成票。我不知道你在上面的评论中问了什么。。。您可以使用disp
函数在for
循环中显示读取的数据。我的意思是,MATLAB只为一个excel文件提供一个输出文件,就像我没有为文件列表编写循环一样。因此,代码可以工作,但我无法得到我想要的,因为循环不工作。如果您能更详细地介绍disp功能,我将不胜感激。再次使用Thx。我建议您查看非常广泛的matlab帮助文件,可以在matlab上获得,也可以在matlab提示符下键入help disp
或doc disp
。同样,如果这篇文章对你有帮助,请投它一票。