【发布时间】:2013-11-21 05:50:12
【问题描述】:
我正在尝试在 MATLAB 中编写一个函数,该函数将在矩阵中使用一组相当大的 excel 文件来读取和分析数字(因为有很多 excel 文件和很多数字)。我让主函数调用一个函数,该函数应该从主函数的矩阵中获取 excel 文件的名称,并使用函数“xlsread”来读取相应的单元格。每个文件具有相同的格式和相同的列数和行数,因此指定要读取的单元格不是问题。但是,为了将每个 excel 文件传递给读取输入函数,我将 excel 文件的名称分配给一个变量,然后将其传递给 read 函数,然后将变量传递给 xlsread。但是,当我运行它时,我收到错误:“文件名必须是字符串。”下面是我如何设置代码的示例。
filenames = {'file1.csv','file2.csv',....};
for i=1:10
file=filenames(i);
data=readin(file);
end
function [sheetdata] = readin(filename)
sheetdata = xlsread(filename,'cellrange','sheet');
end
这可能吗?
仅供参考,xlsread 函数将参数作为字符串接收。第一个参数是文件名,如:
'file1.xls'
第二个参数是要导入的单元格范围,如:
'B2:D5'
这告诉 MATLAB 导入矩形中包含的单元格中的数据,该矩形的左上角为 B2,右下角为 D5。
感谢您的帮助。
编辑:如果我将变量直接分配给文件名,我可以让它工作,例如:
name='file1';
xlsread(name,'A1:C5');
所以我想问题在于我如何设置文件名矩阵。我想以这种方式设置它,因为我不知道最终需要分析多少张工作表,并且通过使用矩阵,我可以轻松快速地添加、删除或编辑任何工作表,而无需更改我的代码的任何其他部分。
【问题讨论】:
标签: string excel matlab variables