matlab - 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 matlab\toolbox\matlab\bigdata\@tall\head.m % tall method
我的 Matlab 版本是 2016b。我真的很困惑,需要帮助。提前致谢。
解决方案
您期望的函数是表格方法,在 MATLAB R2016b 中引入(如文档页面head
底部所述)。
我的猜测是您使用的 MATLAB 版本早于 R2016b。
在所有工具箱中,实际上有 4 个头函数(截至 R2017b),您可以使用-all
参数 for获取列出的可用函数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
为输入类型定义函数table
- 仅适用于 tall 数组数据类型(或您拥有工具箱的任何其他内容)。
解决方法
一个快速的解决方法是只使用索引
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 标记 wiki(或标记信息)的指示,请始终指定您使用的发行版本,它有助于诊断与此完全相同的问题!
推荐阅读
- javascript - 数组差异,嵌套的 For 循环
- javascript - TypeError:无法读取未定义 NextJS 的属性“地图”
- apache-kafka-connect - Debezium MongoDB 连接器不执行初始快照
- javascript - 我需要帮助来使用 javascript 隐藏未选择的日子
- shell - 删除命令提示符输出中的换行符
- javascript - Javascript 与 Python 中的递归深度优先搜索
- python - Python 编译器跳过“if”语句
- python - 使用弹出登录窗口进行网页抓取
- javascript - 在拖放和拖动中反应 DnD 孩子
- python - 将 3d 列表转换为 numpy 数组会插入不需要的元组