Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MATLAB中为多个excel文件定义矩阵并运行循环?_Excel_Matlab_Loops_Filenames - Fatal编程技术网

如何在MATLAB中为多个excel文件定义矩阵并运行循环?

如何在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))

我有200多个excel文件,上面有国家名称和年份。我希望Matlab将这些文件的特定表的特定范围定义为带有标题的矩阵(代码是为I-o表矩阵编写的),并为每个文件运行代码,并将每个文件的输出保存在单独的文件中。主要的问题是,我无法在循环中处理文件并同时为每个文件定义矩阵。 单个文件的代码如下所示

    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
。同样,如果这篇文章对你有帮助,请投它一票。