2013-07-26 3 views
0

Я создаю график сюжета 3x3, и я хочу иметь некоторые опции для отображения. В каждом подзаголовке показан крутящий момент по времени для одной степени свободы (например, сгибание/растяжение колена), но я пытаюсь дать варианты: показывать справа и слева, крутящий момент, нормализованный массой субъекта, avg или нет и т. Д. Прямо сейчас я явно кодирую эти параметры, но есть ли лучший способ дать мне выбор: оставить только, а не нормализовать, показать avg? Хмммлучший способ сделать это в 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

, пожалуйста, рассмотрите возможность редактирования заголовка этого сообщения или выбора более содержательного заголовка next время! –

ответ

1

Ваш подход является правильным. Гораздо лучше использовать переменные и условия, чем вы делали, чем прокомментировать строки вручную каждый раз, когда вы хотите скрыть некоторые графики и т. Д.

Теперь, что вы можете сделать, это обертывание всего в функции. И ваши параметры (plotLeft, plotRight ...) станут аргументами этой функции. Нравится вам скрыть сложность, и это освобождает ваш разум от создания больших вещей.

Есть также маленькие вещи, которые вы можете сделать, чтобы улучшить читаемость:

  1. Отступ ваш код правильно. Matlab может помочь вам: Ctrl-ACtrl-I (или ⌘A⌘I на макинтош) зафиксирует отступы в целом файле.

  2. hold on можно назвать только один раз после того, как subplot

  3. использования true и false для логических значений вместо 0 и 1

  4. вам не нужна точка с запятой после figure, subplot, plot, xlabel , title, axis, и вообще любая инструкция, которая ничего не возвращает

+0

Хорошо, отлично! Благодарю. Рад узнать, что я на правильном пути, и я положу твои советы на работу. – dustynrobots

Смежные вопросы