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

时间:2012-01-17 12:34:31

标签: excel matlab loops filenames

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

    function res=cb(a)
    a=[xlsread('aut2000.xls', 'domestic','B7:AV54')]
    a = a(any(a'),any(a))
    ...

谢谢。

1 个答案:

答案 0 :(得分:0)

如果没有关于如何在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'}, ...})并让函数循环通过该结构。