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上使用它。