Matlab – 为什么有时xslread不会让一个数字作为表单参数?
我想阅读一个excel文件与10张matlab与xlsread函数是这样的:
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);
我还没有能够改变这个“基本”模式,并进行一些debugging,我发现,奇怪的是,xlsread('mediciones',1)可以工作,但不能与任何其他编号一起工作。
做一些研究我发现有一种方法来逃避这个问题,通过使用xlsinfo获取表名称,然后使用表单作为参数,但我不明白为什么我不能直接与一个号码,为什么我只能用数字1来做,或者为什么它突然不起作用,而我一直以数字作为参数。
有没有办法解决这个问题,并直接使用数字作为表参数?
编辑 – 摘要和新信息
如果您没有安装用于Windows的Excel ,则xlsread
将以基本模式运行,因此您无法使用数字作为工作表参数。
因此,为便于携带,最好使用xlsinfo
来获取表单string。
由于某种原因,即使它看起来不应该,(对我来说)它在OS X 10.9上工作。 但是,它不再适用于OS X 10.11(我有Matlab版本2012a)。
正如评论中所build议的那样,您需要Excel for Windows ,否则您将处于基本模式。 以下是文档中的相关摘录:
num = xlsread(filename)
从名为filename
的Microsoft®Excel®电子表格文件中的第一个工作表中读取数据,并返回数组num
的数字数据。在使用Microsoft Excel软件的Windows®系统上,xlsread读取您的Excel版本识别的任何文件格式。
如果您的系统没有适用于Windows的Excel,xlsread将以基本导入模式运行,并只读取XLS,XLSX,XLSM,XLTX和XLTM文件。
我怀疑它以前工作,因为你在Windows PC,而不是Mac上使用它。