MATLAB中的xlsread函数是否需要Excel?

时间:2015-07-20 13:27:07

标签: excel matlab csv xlsread

我有两台具有相同MATLAB代码和相同Excel文件(.csv格式)的计算机。该代码仅适用于具有Excel的计算机。我想不出任何其他差异。

计算机是否需要Excel才能使xlsread正常工作?我得到的错误是一种无法识别的格式。

如果是这种情况,有没有获得Excel的任何简单的解决方法?

编辑:似乎不需要Excel。也许问题是该文件是.csv?毕竟这是格式错误。我无法想象为什么同一格式的文件在我的另一台计算机上运行。

已解决:.csv文件是问题所在。对于读取.csv文件,matlab的importdata()函数被证明是非常通用的。

3 个答案:

答案 0 :(得分:6)

根据this page

  

如果您的系统安装了Excel®forWindows®,包括COM服务器(典型安装Excel的一部分):

     

所有MATLAB®导入选项均支持XLS,XLSX,XLSB,XLSM,XLTM和XLTX格式。

...

  

如果您的系统没有安装Excel for Windows,或者COM服务器不可用:

     

所有MATLAB导入选项都可读取XLS,XLSX,XLSM,XLTM和XLTX文件。

但是,如果您只是尝试导入逗号分隔的ASCII文件,那么xlsread就有点矫枉过正了。如果您的数据纯粹是数字,请使用csvreaddlmread。如果您的数据是混合的,请改用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