Matlab 如何根据数据值定义imagesc中的颜色
我正试图根据我的数据值更改imagesc plot上的颜色比例 我的数据是一个向量,值在0-50之间 我已按如下方式设置了颜色贴图:Matlab 如何根据数据值定义imagesc中的颜色,matlab,colors,matlab-figure,Matlab,Colors,Matlab Figure,我正试图根据我的数据值更改imagesc plot上的颜色比例 我的数据是一个向量,值在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(myd
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
i=1的长度(mydata)
如果(mydata(i)==0)
指数(i)=1;
elseif(mydata(i)==1)
指数(i)=2;
elseif(mydata(i)==2)
指数(i)=2;
elseif(mydata(i)=3)
指数(i)=3;
elseif(mydata(i)==4)
指数(i)=3;
elseif(mydata(i)>5&mydata(i)10&mydata(i)15&mydata(i)首先,您需要将循环中的length(mydata)
更改为numel(mydata)
。否则您无法访问mydata
的所有元素。或者更好的做法是,将其矢量化(无循环):
那就用
imagesc(index); %// display image
colormap(color); %// set your matrix "color" as the colormap
colorbar %// show color bar, if desired
imagesc(索引)!是的!我自己才意识到!非常感谢!!
imagesc(index); %// display image
colormap(color); %// set your matrix "color" as the colormap
colorbar %// show color bar, if desired