Matlab 中的未定义函数 'head'

Undefined function 'head' in Matlab

我遇到了一个奇怪的问题。 我在 运行 我的代码:

时收到此错误

'table'.

类型的输入参数未定义函数 'head'
filename = 'C:\Users\farazpc.ir\Downloads\Telegram 
Desktop\MainDataset.csv';
m = readtable(filename);
h = head(m,500);

虽然我已经用 verwhich 命令检查过,但我有这个功能,我试图为这个方法设置一个路径从 Home in Matlab 然后设置路径部分。我按照 link:

中的说明进行操作

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

这里是 head 方法的路径:

 which head

 H:\signal matlab\toolbox\matlab\bigdata\@tall\head.m  % tall method

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

你期望的函数head是表格法,在MATLAB R2016b中引入(如docs page底部所述)。

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

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

>> which head -all
C:\Program Files\MATLAB\R2017b\toolbox\matlab\bigdata\@tall\head.m              % tall method
C:\Program Files\MATLAB\R2017b\toolbox\matlab\datatypes\@tabular\head.m         % tabular method
C:\Program Files\MATLAB\R2017b\toolbox\distcomp\parallel\@codistributed\head.m  % codistributed method
C:\Program Files\MATLAB\R2017b\toolbox\distcomp\gpu\@gpuArray\head.m            % gpuArray method

因为您没有表格方法,所以没有定义函数 head 输入类型 table - 仅适用于 tall 数组数据类型(或您拥有工具箱的任何其他类型) .


解决方法

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

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

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

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

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


按照本网站 MATLAB tag wiki(或标签信息)中的指示,请始终指定您使用的是哪个发行版本,它有助于诊断与此完全相同的问题!