2012-11-24 2 views
0

나는 1024x300의 매트릭스있는 여러 지점matlab 줄거리에서 mutliple 줄에 대한 색상을 지정하는 방법?

다음 ydep
plot(ydep, xvar, '.', 'Markersize', 3); 

및 xvar을 그립니다 다음 MATLAB 플롯을 사용하고, 그래서 300 점선은 임의의 색상으로 꾸몄다되고있을 것입니다. 내 질문은 매개 변수의 각 300 줄의 색을 지정하는 방법입니다. 나는 각 '라인'음모 루프를 사용하려고하지만 linecolors이 라인의 각 색상을 정의 곳은

for n=1:300 
    plot(ydep(:, n), xvar(:, n), '.', 'Markersize', 3, 'color', linecolors(n, :)); 
    hold on; 
end 

매우 느리다.

+0

죄송합니다. 코드를 수정하고 각 반복에서 각 개별 '선'을 그립니다. 그건 그렇고, 무작위 색상이 대비가 좋지 않아 그림을 내가 제출 한 저널에서 인정하지 않기 때문에 색상을 직접 제어해야합니다. – user1285419

+0

예, 문제는 솔루션이 너무 느리게 실행되고 있다는 것입니다. 내가 한 번만 실행하면 그렇게 나쁘지 않습니다. 그러나 나는 천 시간 동안 코드를 실행해야하고 또한 최상의 수치를 얻기 위해 매개 변수를 조정해야합니다 (어떤 경우에는 더 큰 행렬에 대해 5000x1000 행렬이 더 필요합니다). 나는 단지 하나의 플롯 기능을 가진 것보다 더 빨리 실행되도록하는 방법이 있는지 알고 싶다. 감사 – user1285419

답변

0

을 설정하는 방법의 예입니다. 방법의 개념은 플롯 된 선의 핸들을 가져온 다음 set 명령을 사용하는 것입니다. Matlab은 데이터 세트의 크기에 맞게 조정할 수있는 색상 맵을 제공합니다. 여기서는 매우 편리합니다. 다음과 같이

나는 당신의 예를 수정할 수 있습니다 :

h = plot(ydep, xvar, '.', 'Markersize', 3); 
set(h,{'color'},num2cell(cool(length(h)),2)); 

이것은 첫 번째 코드 줄에 모든 점선의 핸들을 가져옵니다. 그런 다음 색상 표 cool을 사용하고 h의 요소 ​​수와 동일한 숫자로 비율을 조정했습니다. 그러나 컬러 맵 (정규 행렬을 제공)은 set 명령의 인수에 직접 사용할 수 없습니다. 여러 속성 값을 지정하는 한 가지 방법은 셀 배열을 사용하는 것입니다. 따라서이 예제가 수행하는 것입니다.

모든 크레딧은 Matlab Answers에 대한 그녀의 대답을 위해 Kelly Kearney에게갑니다.

관련 문제