我正在尝试根据我的数据值更改imagesc图上的色标。
我的数据是一个向量,值范围为0-50。
我已经设置了这样的色彩映射:
color = [0 0 0
linspace(.7,1,6)' linspace(.5,1,6)' linspace(0,0,6)'];
我还设置了一个向量,为数据中的每个值分配不同的索引。
for i=1:length(mydata)
if (mydata(i)==0)
index(i)=1;
elseif(mydata(i)==1)
index(i)=2;
elseif(mydata(i)==2)
index(i)=2;
elseif(mydata(i)==3)
index(i)=3;
elseif(mydata(i)==4)
index(i)=3;
elseif(mydata(i)>5 & mydata(i)<10)
index(i)=4;
elseif(mydata(i)>10 & mydata(i)<15)
index(i)=5;
elseif(mydata(i)>15 & mydata(i)<20)
index(i)=6;
else
index(i)=7;
end
end
但是,我现在如何将它传递给imagesc函数?
关于如何解决此问题的任何其他建议? 非常感谢!
答案 0 :(得分:1)
首先,您需要在循环中将length(mydata)
更改为numel(mydata)
。否则,您无法访问mydata
的所有元素。或者更好,它是矢量化的(没有循环):
index = NaN(size(mydata)); %// preallocate
index(mydata==0) = 1;
index(mydata==1) = 2;
%// etc.
然后使用
imagesc(index); %// display image
colormap(color); %// set your matrix "color" as the colormap
colorbar %// show color bar, if desired