我有两台具有相同MATLAB代码和相同Excel文件(.csv格式)的计算机。该代码仅适用于具有Excel的计算机。我想不出任何其他差异。
计算机是否需要Excel才能使xlsread正常工作?我得到的错误是一种无法识别的格式。
如果是这种情况,有没有获得Excel的任何简单的解决方法?
编辑:似乎不需要Excel。也许问题是该文件是.csv?毕竟这是格式错误。我无法想象为什么同一格式的文件在我的另一台计算机上运行。
已解决:.csv文件是问题所在。对于读取.csv文件,matlab的importdata()函数被证明是非常通用的。
答案 0 :(得分:6)
如果您的系统安装了Excel®forWindows®,包括COM服务器(典型安装Excel的一部分):
所有MATLAB®导入选项均支持XLS,XLSX,XLSB,XLSM,XLTM和XLTX格式。
...
如果您的系统没有安装Excel for Windows,或者COM服务器不可用:
所有MATLAB导入选项都可读取XLS,XLSX,XLSM,XLTM和XLTX文件。
但是,如果您只是尝试导入逗号分隔的ASCII文件,那么xlsread
就有点矫枉过正了。如果您的数据纯粹是数字,请使用csvread
或dlmread
。如果您的数据是混合的,请改用textscan
。
答案 1 :(得分:3)
xlsread(filename,sheet,xlRange,'basic')
无法在您的计算机上安装Excel。
其他附加参数需要安装Excel。
Matlab可以原生地导入字符分隔文件。
答案 2 :(得分:2)
我没有在没有Excel的计算机上使用xlsread
,所以我无法确定。但根据documentation Excel没有必要;你只会失去一些功能:
num = xlsread(filename,sheet,xlRange,'basic')
以基本导入模式从电子表格中读取数据。如果您的计算机没有适用于Windows®的Excel,xlsread
将自动以basic
导入模式运行,该模式支持XLS,XLSX,XLSM,XLTX和XLTM文件。
basic
模式是没有Excel for Windows的计算机的默认模式。在基本模式下,xlsread
:
仅读取XLS,XLSX,XLSM,XLTX和XLTM文件。
在读取XLS文件时不支持
xlRange
输入。在这种情况下,请使用''
代替xlRange
。不支持函数句柄输入。
将所有日期导入为Excel序列号。 Excel序列日期编号使用与MATLAB®日期编号不同的参考日期。
因此,问题可能是您使用xlsread
模式不支持的某些选项致电basic
。