xlsread('不是文件名,而是包含在文件名的数组元素中的string)

我想阅读一个Excel文件(xlsread),但我不想每次都手动inputstring,而是想要xlsread包含在数组中的文件的名称。

例如,我的数组B是:

B = 'john.xlsx' 'mais.xlsx' 'car.xlsx' 

然后我想读第一个元素内部的名字,这意味着:“john.xlsx”

我怎样才能做到这一点?

 data = xlsread(B{1}); 

或者,如果你想阅读所有这些:

 for i=1:length(B) data(i).nums = xlsread(B{i}); end 

当然,假设你的B是一个单元arrays。 如果不是这样,它就不能像你描述的那样存在。 如果所有string具有相同的长度(那么可能)或用空格填充,则可以使用分隔字符数组到单元格数组

 B = mat2cell(B,ones(size(B,1),1),size(B,2)); 

不同长度的string必须位于单元格数组中,您可以通过大括号{}访问元素。 所以,你可以这样调用第一个元素的xlsread

 names{1} = 'john.xlsx'; names{2} = 'mais.xlsx'; names{3} = 'car.xlsx'; num = xlsread(names{1});