我遇到了一个奇怪的问题。 我在运行代码时收到此错误:
类型为'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。 我真的很困惑,需要帮助。 预先感谢。
答案 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(或标签信息)中的指示,始终指定您使用的发行版,它可以像这样完全帮助诊断问题!