【发布时间】:2017-11-07 02:44:43
【问题描述】:
我有一组数据,我试图将其绘制为直方图。此外,我想根据 x 轴位置对各个条形进行着色。 CData,这里描述的似乎做我想做的,但我不能让它工作。
这是我的代码:
h = bar(new_edge,N,'hist','FaceColor','flat');
hold on
for n = 1:length(N)
if (x - x/1.09) - (x-1) > 0
probability(n) = 1 - ((x-x/1.09) - (x-1))/((x - 1/1.09)+(x/0.91 - x));
else
probability(n) = 1;
end
color_num = 30;
cm = jet(color_num);
min = 0.5450;
max = 1;
color_map_index = floor(1 + (probability(n) - min)/(max-min)*(color_num-1));
rbg = cm(color_map_index,:);
h.CData(n,:) = rbg;
end
与 MATLAB 示例类似,我首先创建我的条形图。接下来,我想循环并根据计算为每个条形指定颜色。我通过创建一个带有# of bins 和一个 min/max 的颜色图,获取一个颜色索引,然后最终检索 rbg 值来做到这一点。尝试应用颜色时出现以下错误:
下标索引必须是正整数或逻辑数。
h.CData(n,:) = rbg;
如果我深入研究 h 对象,MATLAB 会告诉我 CData 的大小为 (4x65)。这里发生了什么? new_edge 和 N 都是 1x65 向量。
【问题讨论】:
标签: matlab