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

时间:2015-03-25 22:11:32

标签: matlab pie-chart

我是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))

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

提前致谢。

1 个答案:

答案 0 :(得分:3)

2014a 中的分类数据类型现在没有支持(通常是由于新颖性)。在较新版本中,您可以直接将分类数组传递给pie。在 2014a 传递类别计数将起作用,就像任何数字数组一样。使用countcats函数很简单。虽然categories函数可以将类别名称作为字符串返回以用于标记。

使用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))