2014-10-11 4 views
1

내 데이터의 값에 따라 imagesc 플롯의 색상 비율을 변경하려고합니다.데이터 값을 기반으로 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 함수에 전달합니까?

이 문제를 해결하는 방법에 대한 다른 제안이 있으십니까? 감사합니다.

답변

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 
+0

imagesc (인덱스)를 사용! 예! 나는 단지 그 자신을 깨달았다! 고마워요 !! – ana

관련 문제