Matlab игнорировать значение, если 0, выполнять операции в цикле - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть цикл обработки индекса вулканов VEI за разные годы. Есть ли способ игнорировать вторую строку в "volcsymbol2" при запуске цикла?

Скажем, в некоторые годы VEI4 равен [0 0 0]. Переменная существует, но значения равны 0. Карта ничего не будет отображать, и легенда исчезнет. Остальные годы не нанесены.

Я пытался, если ... существует, но он не показывает оставшиеся годы.

**% Volcano marker for VEI <= 3
volcsymbol = plotm(VEI3lat,VEI3long,'^','markersize',8,'markerfacecolor','r','markeredgecolor','k','linewidth',0.5);
% Volcano marker for VEI >= 4
volcsymbol2 = plotm(VEI4lat,VEI4long,'^','markersize',8,'markerfacecolor','k','markeredgecolor','k','linewidth',0.5);

% Creating legend on map
legend([volcsymbol,volcsymbol2],{'VEI <= 3','VEI >= 4'},'Location','Southeast')**

конец РЕДАКТИРОВАТЬ: Спасибо за комментарии все. Я сделал некоторые успехи. Теперь у меня есть

% Volcano marker for VEI <= 3
volcsymbol = plotm(VEI3lat,VEI3long,'^','markersize',8,'markerfacecolor','r','markeredgecolor','k','linewidth',0.5);

if isequal(VEI4lat,[0]) == 0,

elseif isequal(VEI4lat,[0]) == 1
% Volcano marker for VEI >= 4 
volcsymbol2 = plotm(VEI4lat,VEI4long,'^','markersize',8,'markerfacecolor','k','markeredgecolor','k','linewidth',0.5);
end

% Creating legend on map

if isequal(VEI4lat,[0]) == 1
     legend([volcsymbol,volcsymbol2],{'VEI <= 3','VEI >= 4'},'Location','Southeast')
elseif isequal(VEI4lat,[0]) == 0,
    legend([volcsymbol],{'VEI <= 3'},'Location','Southeast')
end

Однако volcsymbol2 теперь не отображается для всех моих графиков, а легенда также не показывает volcsymbol2. На моих картах и ​​в легенде показываются только символы ...

...