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

我有两台计算机具有相同的MATLAB代码和相同的Excel文件(.csv格式)。 该代码只适用于具有Excel的计算机。 我想不出有什么不同。

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

如果是这样的话,有没有获得Excel的简单解决方法?

编辑:看来,Excel是不需要的。 也许问题是该文件是一个.csv? 毕竟这是一个格式错误。 我无法想象为什么一个相同格式的文件在我的另一台电脑上工作。

解决:.csv文件是问题。 为了读取.csv文件,matlab的importdata()函数被certificate是非常通用的。

xlsread(filename,sheet,xlRange,'basic')将在你的机器上没有安装Excel的情况下工作。

其他附加参数将需要安装Excel。

Matlab虽然可以原生导入字符分隔的文件。

根据这个页面

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

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

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

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

但是,如果你只是想导入一个逗号分隔的ASCII文件,那么xlsread是过度xlsread和超级慢。 如果您的数据是纯数字的,请使用csvreaddlmread 。 如果您的数据混合在一起,那么请使用textscan

我没有在没有Excel的计算机上使用xlsread ,所以我不能确定。 但根据文档, Excel不是必需的; 你只会失去一些function:

num = xlsread(filename,sheet,xlRange,'basic')以基本导入模式从电子表格中读取数据。 如果您的计算机没有适用于Windows®的Excel,则xlsread自动以basic导入模式运行,该模式支持XLS,XLSX,XLSM,XLTX和XLTM文件。

basic模式是Windows没有Excel的计算机的默认模式。 在基本模式下, xlsread

  • 仅读取XLS,XLSX,XLSM,XLTX和XLTM文件。

  • 读取XLS文件时不支持xlRangeinput。 在这种情况下,使用''来代替xlRange

  • 不支持function句柄input。

  • 将所有date作为Excel序列date编号导入。 Excel系列date编号使用与MATLAB®date编号不同的参考date。

所以,也许问题是你正在调用xlsread basic模式不支持的一些选项。