在MATLAB中实现这一点的更好方法?

在MATLAB中实现这一点的更好方法?,matlab,graph,plot,Matlab,Graph,Plot,我正在创建一个3x3的子地块,我想有一些显示选项。每个子图都显示了一个自由度的扭矩与时间的关系(例如膝关节屈曲/伸展),但我试图给出是否显示右侧和左侧、根据受试者质量标准化的扭矩、平均值或否等选项。现在我正在明确地对这些选项进行编码,但有没有更好的方法让我选择,比如说:仅左侧,不标准化,显示平均值?嗯 plotRight = 1; normalizeByMass = 0; figure(1); for DOF = 1:9 subplot(3,3,DOF); if

我正在创建一个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;  
下一个子地块也是一样的


谢谢你,你的方法是正确的。与每次要隐藏某些绘图等时手动注释行相比,使用变量和条件要好得多

现在您可以做的是将所有内容包装到函数中。您的参数(
plotLeft
plotRight
…)将成为此函数的参数。就像这样,你隐藏了复杂性,它让你的思想得以解放,去建造更大的东西

您还可以做一些小事情来提高可读性:

  • 正确缩进代码。Matlab可以帮助您:Ctrl-A Ctrl-I(或⌘A.⌘我(在mac上)将修复整个文件中的缩进

  • hold-on
    只能在
    子批之后调用一次

  • 对布尔值使用
    true
    false
    ,而不是0和1

  • 子地块
    绘图
    xlabel
    标题
    ,以及通常任何不返回任何内容的指令之后,不需要分号


  • 所有这些选项仍然需要背后的代码,据我所知,它们对MATLAB不是很友好。我将查看指南。它不是为任何用户,它只是为我-我只是试图学习如何成为一个更好的程序员,并怀疑是否有更好的方式:-请考虑编辑这个职位的标题或选择更翔实的标题下次!好的,太好了!谢谢很高兴知道我在正确的轨道上,我会把你的建议付诸实践。