【问题标题】:Undefined function 'head' in MatlabMatlab中未定义的函数'head'
【发布时间】:2018-10-17 09:30:24
【问题描述】:

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

“table”类型的输入参数的未定义函数“head”。

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

虽然我已经检查了 verwhich 命令并且我有这个功能,我尝试在 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。 我真的很困惑,需要帮助。 提前致谢。

【问题讨论】:

  • 这看起来像是来自不同工具箱的不同功能,称为相同。您没有使用tall 数组,您使用的是表。如果这是您唯一拥有的,则意味着您没有所需的工具箱
  • 您可以尝试使用更简单的文件名吗?我建议 cd 进入 csv 所在的目录并运行 readtable('MainDataset.csv');,看看这是否可以解决 rpblem
  • @YuvalHarpaz 这不太可能,因为错误是针对未定义函数head,而不是使用readtable 加载文件失败,一个合理的假设是成功读取表...
  • head 被误认为是输入参数。将文件名解析为两个或多个部分可能会导致多个输入参数。
  • 感谢大家的友好回复。问题是 head 方法不是我想的那样。

标签: matlab toolbox undefined-function


【解决方案1】:

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

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

在所有工具箱中,实际上有 4 个头函数(截至 R2017b),您可以通过使用 -all 参数为 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

因为您没有表格方法,所以没有为输入类型 table 定义函数 head - 仅适用于 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 tag wiki(或标签信息)的指示,请始终指定您使用的发行版本,它有助于诊断与此完全相同的问题!

【讨论】:

  • 感谢您的友好回复。是的,我没有头部“表格方法”但是,我的 Matlab 版本是 2016b。
  • @m.erfani 如果您有 R2016b,那么您应该有 head 用于表格,它位于核心 MATLAB 中,不需要任何工具箱。您仍然可以使用我建议的解决方法,但请注意,如果您说的是真的,您的 MATLAB 安装可能会出现问题!
  • head 仅在 tall 数组中首次添加,table 实现仅在稍后添加。
  • 有没有办法在不安装新版本的情况下将更新的方法添加到 R2016b?
  • @m.erfanim 不,这是获得新版本的动力。 head 不值得,我展示的索引选项实际上是相同的功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2017-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多