我有一个大小为a=<100x1 int32>
的数组,a(1)=2
,a(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'
等等,那么我该如何为这些数据绘制直方图。
答案 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)