Matlab中未定义的函数“ head”

时间:2018-10-17 09:30:25

标签: matlab toolbox undefined-function

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

类型为'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 matlab\toolbox\matlab\bigdata\@tall\head.m  % tall method

我的Matlab版本是2016b。 我真的很困惑,需要帮助。 预先感谢。

1 个答案:

答案 0 :(得分:2)

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

我的猜测是您使用的是R2016b之前的MATLAB版本。

在所有工具箱中,实际上有4个头函数(从R2017b开始),您可以使用-all的{​​{1}}参数来列出可用的函数:

which

因为您没有表格方法,所以对于输入类型>> 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-仅适用于高数组数据类型(或您拥有工具箱的任何其他功能)。 / p>


解决方法

一种快速的解决方法是仅使用索引

table

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

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) 函数要做的...


请按照此网站上的MATLAB tag wiki(或标签信息)中的指示,始终指定您使用的发行版,它可以像这样完全帮助诊断问题!