MATLAB:'cell' 类型的输入参数的未定义函数 'isfinite'

MATLAB: Undefined function 'isfinite' for input arguments of type 'cell'

我是 MATLAB 的新手。我想制作包含分类数据的数据集的饼图:

 ?                      1836 
 Federal-gov             960 
 Local-gov              2093 
 Never-worked              7 
 Private               22696 
 Self-emp-inc           1116 
 Self-emp-not-inc       2541 
 State-gov              1297 
 Without-pay              14 

我导入了大小为 32561x1 的数据集,并使用以下方法将其转换为分类数据:

w = categorical(w)

现在当我在 matlab 中使用 pie 命令时:

pie(w)

它给我以下错误:

Undefined function 'isfinite' for input arguments of type 'cell'.
Error in pie (line 34)
if ~all(isfinite(x))

我不明白是不是我的数据集对于这个饼图来说太大了?我该怎么做才能为这个大的分类数据生成饼图?

提前致谢。

2014a 中的分类数据类型现在没有支持(通常是因为新)。在更新的版本中,您可以将 分类 数组直接传递给 pie。在 2014a 中,传递类别计数将起作用,就像任何数值数组一样。使用 countcats 函数很容易做到这一点。而 categories 函数可以 return 将类别名称作为字符串用于标记。

使用David在评论中给出的测试用例

A={'first' 'second' 'third' 'fourth' 'fifth'};
B=randi(5,20,1);
C={A{B}}.';                                     %'
C=categorical(C);

你可以打电话

pie(countcats(C))

并包含标签:

pie(countcats(C),categories(C))