2013-07-26 124 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

相关问题