2013-07-26 61 views
0

我正在創建一個3x3的小區圖,我希望有一些顯示選項。每個副圖顯示一個自由度的扭矩與時間的關係(例如膝關節屈曲/伸展),但我試圖給出是否顯示右側和左側的選項,通過主體的質量標準化的扭矩,平均值等等。現在我明確地編寫了這些選項,但有沒有更好的方式讓我選擇說:只留下,沒有標準化,顯示平均值?嗯更好的方法來做到這一點在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 -A按Ctrl-I(或⌘A⌘I在Mac)將解決你的整個文件的縮進。

  2. hold on只需一次後subplot

  3. 使用truefalse布爾值,而不是0和1

  4. 叫你不需要後figuresubplotplotxlabel分號,titleaxis,並且一般而言任何不返回的指令

+0

好吧,太棒了!謝謝。很高興知道我在正確的軌道上,我會把你的提示工作。 – dustynrobots

相關問題