我想阅读带有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)。
答案 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。