在Matlab中确定xlsread函数的公共范围

时间:2017-04-17 16:47:43

标签: excel matlab range xlsread

我试图弄清楚如何在matlab中为xlsread()函数指定一个公共范围。

通常我使用n = xlsread('filename','#sheet','A1:A10'),但我在同一张表中有相当多的数据,我想知道我是否可以指定它有一个范围,即。如果我的所有数据都在'1:10'之间,我想将1:10指定为范围,并且只调用每列的字母值。

我想这样做:

function [a,b,c]=getdata(filename,'1:10')
a=xlsread(filename,1,'A:A'???)
b=xlsread(filename,1,'B:B'???)
c=xlsread(filename,1,'C:C'???)
end

经过一些研究后,我找不到任何关于如何做到这一点的信息。

提前致谢,

Greg

1 个答案:

答案 0 :(得分:1)

如果要读取A列的1到10行,请使用:

data = xlsread(filename, 1, 'A1:A10');

如果要读取所有列的1到10行,请使用:

data = xlsread(filename, 1, '1:10');

如果您想要读取1到10行,比如前三列A,B和C,请使用:

data = xlsread(filename, 1, 'A1:C10'); 

使用动态变量名总是一个坏主意。请阅读this以获取解释。但是,如果您仍想创建abc等等,具体取决于Excel文件中的列数,您可以使用:

for k=1:size(data,2)
   assignin('caller', char(96+k), data(:,k));  %or char(64+k) for block letters
end

如果列数小于或等于26,则上述操作将起作用。 这可能仅在您处理几列时才可行。但我仍然建议避免它。