Matlab - 为什么有时xslread不允许使用数字作为工作表参数?

时间:2016-03-18 17:18:56

标签: excel matlab

我想阅读带有10张matcel的excel文件和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);

我还没有能够改变这个基本的'模式和做一些调试我发现,奇怪的是,xlsread(' mediciones',1)有效,但它不适用于任何其他数字。

进行一些研究我发现有一种方法可以通过使用xlsinfo来获取工作表名称,然后使用工作表字符串作为参数来摆脱这个问题,但我不明白为什么我不能&# 39; t直接用数字做,为什么我只能用数字1来做,或者为什么它突然不起作用,而我总是用数字作为参数。

有没有办法解决这个问题并直接使用数字作为工作表参数?

编辑 - 摘要和新信息

如果您没有安装 Excel for Windows xlsread将以基本模式运行,因此您无法使用工作表参数编号。

因此,为了便于携带,最好使用xlsinfo来获取表格字符串。

出于某种原因,即使它似乎不应该(对我来说),它也适用于OS X 10.9。但是,它在OS X 10.11上不再起作用了(我有Matlab版本2012a)。

1 个答案:

答案 0 :(得分:1)

根据评论中的建议,您需要 Excel for Windows ,否则您将处于基本模式。以下是文档中的相关摘录:

  

num = xlsread(filename)从第一个工作表中读取数据   名为filename的Microsoft®Excel®电子表格文件并返回   数组num中的数字数据。

     

在使用Microsoft Excel软件的Windows®系统上,xlsread会读取任何内容   您的Excel版本识别的文件格式。

     

如果您的系统没有Excel for Windows,则xlsread会运行   基本导入模式,仅读取XLS,XLSX,XLSM,XLTX和XLTM   文件。

我怀疑它之前有用,因为你在Windows PC上使用它,而不是Mac。