2013-07-26 4 views
0

하위 플롯의 3x3 플롯을 만들고 있는데 표시 옵션이 필요합니다. 각 서브 플로트는 1 자유도 (예 : 무릎 굴곡/연장)에 대한 토크 대 시간을 보여 주지만, 오른쪽과 왼쪽으로 표시할지, 대상의 질량으로 평균화 한 토크인지, 평균이 아닌지 등의 옵션을 제공하려고합니다. 지금은 이러한 옵션을 명시 적으로 코딩하고 있지만, 나에게 선택의 여지를 줄 수있는 더 좋은 방법이 있습니다. 왼쪽으로만, 표준으로 표시하지 않고, 평균을 표시 하시겠습니까?MATLAB에서 더 좋은 방법은 무엇입니까?

plotRight = 1; 
normalizeByMass = 0; 
    figure(1); 
    for DOF = 1:9 
    subplot(3,3,DOF); 
    if normalizeByMass 
     if plotRight 
      plot(x, torqueRnorm(:,:,DOF), 'r'); 
      hold on 
     end 
     if plotLeft 
      plot(x, torqueLnorm(:,:,DOF)); 
      hold on 
     end 
    else 
     if plotRight 
      plot(x, torqueR(:,:,DOF), 'r'); 
      hold on 
     end 
     if plotLeft 
      plot(x, torqueL(:,:,DOF)); 
      hold on 
     end 
    end 
end 
plot(x, torqueRmean(:,DOF), 'k', 'LineWidth', 2); 
hold on 
plot(x, torqueLmean(:,DOF), 'k', 'LineWidth', 2); 
hold on 
ylabel('Hip'); 
title('X'); 
axis tight; 

하고 다음 부가 적 줄거리에 대해 같은 일 ...

감사 흠

+0

이 옵션들은 모두 코드가 필요하며, MATLAB과 친숙하지 않습니다. – dustynrobots

+0

GUIDE를 확인해 보겠습니다. 어떤 사용자가 아니더라도 그것은 단지 나를위한 것입니다. 더 나은 프로그래머가되는 방법을 배우고 더 좋은 방법이 있는지 궁금합니다 : – dustynrobots

+0

이 게시물의 제목을 수정하거나 다음에 더 유익한 제목을 선택하십시오 시각! –

답변

1

귀하의 접근 방식은 올바른 것입니다. 플롯 등을 숨길 때마다 수동으로 줄을 주석 처리하는 것보다 변수 및 조건을 사용하는 것이 훨씬 낫습니다.

이제는 의 모든 내용을 함수에 래핑하는 것입니다. 그리고 매개 변수 (plotLeft, plotRight ...)가이 함수의 인수가됩니다. 이처럼 당신은 을 숨기고 더 큰 것을 만들기 위해 마음을 여유롭게합니다. 제대로

  1. 들여 쓰기 코드를 :

    또한 가독성을 향상시키기 위해 할 수있는 작은 일들이 있습니다. matlab에 당신을 도울 수 있습니다 Ctrl 키-ACtrl 키-I (또는 ⌘A 맥에 ⌘I)이 전체 파일에서 들여 쓰기를 수정합니다.

  2. hold onfigure, subplot, plot, xlabel 후 세미콜론이 필요하지 않습니다 subplot

  3. 사용 truefalse 대신 0의 논리 값과 1

  4. 후 한 번만 호출 할 수 있습니다 , title, axis 및 일반적으로 아무 것도 반환하지 않는 명령

+0

좋습니다. 감사. 내가 올바른 길을 가고 있다는 것을 알고 기쁜 마음으로, 나는 당신의 팁을 일하게 할 것입니다. – dustynrobots

관련 문제