如何从数组中绘制直方图

时间:2012-01-29 18:44:45

标签: matlab

我有一个大小为a=<100x1 int32>的数组,a(1)=2a(2)=3等等。如何根据此数据绘制直方图。 当我直接尝试使用hist(a)绘图时,它会显示以下错误

Error using  .* 
Integers can only be combined with integers of the same class, or scalar doubles.

如果数据不是整数,假设a=<100x1 string>使a(1)='Saturday'a(2)='Monday'等等,那么我该如何为这些数据绘制直方图。

1 个答案:

答案 0 :(得分:3)

在调用hist之前,您必须将数据转换为双倍(或单一,如果您担心内存):

hist(double(a));

如果要生成直方图,例如字符串,您可以使用grp2idx将数据转换为数字索引。

data = {'a' 'b' 'a' 'c'};
%# convert to numeric
[index,keys]=grp2idx(data)
index =
     1
     2
     1
     3
keys = 
    'a'
    'b'
    'c'
%# plot histogram
hist(index)