Matlab 中的未定义函数'head'



我遇到了一个奇怪的问题。 我在运行代码时收到此错误:

用于类型为"table"的输入参数的未定义函数"head"。

filename = 'C:\Users\farazpc.ir\Downloads\Telegram 
Desktop\MainDataset.csv';
m = readtable(filename);
h = head(m,500);

虽然我已经检查了ver以及哪些命令,但我有这个功能,并且我试图从Matlab中的Home为此方法设置路径,然后设置路径部分。我按照此链接中的说明进行操作:

https://www.mathworks.com/help/matlab/matlab_prog/calling-functions.html

下面是 head 方法的路径:

which head
H:signal matlabtoolboxmatlabbigdata@tallhead.m  % tall method

我的 Matlab 版本是 2016b。 我真的很困惑,需要帮助。 提前谢谢。

您期望的函数head是 MATLAB R2016b 中引入的表格方法(如文档页面底部所述(。

我的猜测是你使用的是早于 R2016b 的 MATLAB 版本。

在所有工具箱中,实际上有 4 个头部函数(截至 R2017b(,您可以使用-all参数列出可用的函数which

>> which head -all
C:Program FilesMATLABR2017btoolboxmatlabbigdata@tallhead.m              % tall method
C:Program FilesMATLABR2017btoolboxmatlabdatatypes@tabularhead.m         % tabular method
C:Program FilesMATLABR2017btoolboxdistcompparallel@codistributedhead.m  % codistributed method
C:Program FilesMATLABR2017btoolboxdistcompgpu@gpuArrayhead.m            % gpuArray method

由于您没有表格方法,因此没有针对输入类型table定义的函数head- 仅适用于高数组数据类型(或您拥有工具箱的任何其他内容(。


解决方法

一个快速的解决方法是只使用索引

h = m( 1:500, : ); % Get first 500 rows of m, for all columns

如果表可能没有足够的行,请添加一些保护:

h = m( 1:min(500,size(h,1)), : ); % Get first 500 rows (or all rows if <500)

这基本上就是所需的head函数所做的......


按照本网站上的 MATLAB 标签维基(或标签信息(中的指示,请始终指定您正在使用的发布版本,它有助于诊断与此完全相同的问题!

相关内容

  • 没有找到相关文章

最新更新