2012-11-27 3 views
0

Matlab/옥타브에 새로운 메신저이지만 R과 함께 사용되었습니다. 그럼 내가하고 싶은 것은 다음과 같습니다. 내 t.test 결과 (y 값) 대 t.test 차이 (x 값)를 표시하고 싶습니다. 아주 간단하게 R로이 데이터를 얻었지만 Matlab로 음모를 꾸미고 싶습니다. 점의 색은 특정 열의 값을 기반으로 변경해야한다는 것입니다. 그래서 기본적으로 p 값입니다. 그래서 y x와 p 값으로 3 개의 열을 얻었습니다.매트릭스의 값을 기반으로 한 색

if [:,3]<0.05 
    a='red'; 
elseif [:,3]<0.01 
     a='green'; 
else 
    a= black; 
end 

쉽게해야한다 : 내가 놓친 거지 무슨

그래서 어쩌면 R.

에서 ifelse 기능

입니다.

+0

MATLAB은 ifelse보다는'elseif' 기능을 가지고 사용할 수 있습니다. 귀하의 질문과 일치하도록 게시물을 업데이트했습니다. –

답변

0

data이라는 [차이, 결과, p- 값] 열이있는 3x3 배열이 있다고 가정합니다. 그런 다음이 같은 data을 플롯 할 수 있습니다 :

figure,hold on 
idxK = data(:,3) > 0.05; 
plot(data(idxK,1),data(idxK,2),'k') 
idxG = data(:,3) < 0.01; 
plot(data(idxG,1),data(idxG,2),'g') 
plot(data(~(idxG|idxK),1),data(~(idxG|idxK),2),'r') 

을 다른 방법으로, scatter

colorIdx = data(:,3)>0.05 + data(:,3)>0.01 + 1; 
figure 
scatter(data(:,1),data(:,2),[],colorIdx) 
colormap([0 1 0;1 0 0;0 0 0]) 
0

는 나는 완전히 당신이 요구하는지 이해 모르겠지만, 당신은 정방 행렬 사전에 번호를 설정 한 경우, 다음 예를 들어, imagesc(rand(5));을 수행하려고 imagesc

사용해보십시오. 이 경우 rand(5)은 5x5 매트릭스의 난수를 만듭니다.

희망이 도움이됩니다.

관련 문제