我想用xlsread函数使用matlab读取10张Excel文件:
SPLByFrequency = zeros(173, 10);
for i = 1:10
rawData = xlsread('mediciones', i);
SPLByFrequency(:, i) = rawData(84:256, 3);
end
这不是我第一次使用数字作为参数来阅读excel表格,而且我从来没有遇到任何问题,但是这次却不允许我这样做,并且出现此错误:
Error using xlsread (line 207)
In basic mode, sheet argument must be a string.
Error in TareaB53 (line 11)
rawData = xlsread('mediciones', i);
我无法更改此“基本”模式并进行一些调试,我发现奇怪的是xlsread('mediciones',1)可以工作,但不能与其他任何数字一起工作。
做一些研究,我发现有一种方法可以通过使用xlsinfo来获取工作表名称,然后将工作表字符串用作参数来摆脱这个问题,但是我不明白为什么我不能直接使用a数字,为什么我只能用数字1来做,还是为什么我一直以数字作为参数却突然不起作用。
有没有办法解决这个问题,并直接使用数字作为工作表参数?
如果未安装Excel for Windows,xlsread
则以基本模式运行,因此您不能在工作表参数中使用数字。
因此,出于可移植性,最好使用它xlsinfo
来获取工作表字符串。
出于某种原因,即使似乎不应该这样做,(对我而言)它也可以在OS X 10.9上运行。但是,它在OS X 10.11(我的Matlab版本为2012a)上不再起作用。
如注释中所建议,您需要Excel for Windows,否则您处于基本模式。以下是文档中的相关摘录:
num = xlsread(filename)
从名为Microsoft®Excel®电子表格文件的第一个工作表中读取数据,filename
并返回array中的数字数据num
。在具有Microsoft Excel软件的Windows®系统上,xlsread读取您的Excel版本可以识别的任何文件格式。
如果您的系统没有用于Windows的Excel,则xlsread在基本导入模式下运行,并且仅读取XLS,XLSX,XLSM,XLTX和XLTM文件。
我怀疑它曾经起作用过,因为您是在Windows PC而不是Mac上使用它的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句