我正在创建一个3x3的子图,我希望有一些显示选项。每个子图显示一个自由度(例如膝盖屈曲/伸展)的扭矩与时间的关系,但是我试图给出是否显示左右的选项,根据受试者的质量,平均或不平均扭矩等。现在我明确地编写了这些选项的编码,但有没有更好的方法让我选择说:只留下,不规范化,显示平均值?嗯
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 :(得分:1)
你的方法是正确的。使用变量和条件比使用每次要隐藏某些图等手动注释掉线要好得多。
现在您可以做的是将所有内容包装在函数中。您的参数(plotLeft
,plotRight
...)将成为此函数的参数。像这样,你隐藏的复杂性,它可以让你自由地构建更大的东西。
您可以采取一些措施来提高可读性:
正确缩进代码。 Matlab可以帮助你: Ctrl-A Ctrl-I (或mac上的⌘A ⌘I)将修复整个档案中的缩进。
hold on
只能在subplot
使用true
和false
代替布尔值而不是0和1
在figure
,subplot
,plot
,xlabel
,title
,axis
后,您不需要分号,一般而言,任何不返回任何指令