Two conditional operations can be used in matlab or do I need to use double if?

3 vues (au cours des 30 derniers jours)
for i = 1:length(beam_spalling.high)
if transversal(i) == 0 && ongitudinal == 0
severity_bs(i) = 2;
elseif transversal(i) == 0 && longitudinal > 0
severity_bs(i) = 3;
elseif transversal(i) > 0 && longitudinal == 0
severity_bs(i) = 3;
else transversal(i) > 0 && longitudinal > 0
severity_bs(i) = 4;
end
end
For the third conditional, could be used another loop to have one or another option?
  2 commentaires
Yongjian Feng
Yongjian Feng le 26 Juil 2021
For the third one, you meant this:
elseif transversal(i) > 0 && longitudinal == 0
It looks good. What do you want please?
DulceEien
DulceEien le 27 Juil 2021
thank you, I saw my error

Connectez-vous pour commenter.

Réponse acceptée

Rik
Rik le 26 Juil 2021
It looks like you could use a lookup table and skip the entire loop:
transversal=[0 1 0 1];longitudinal=[0 0 1 1];
LUT=[2 3;3 4];
[~,ind1]=find( [transversal(:)==0 transversal(:)>0 ] );
[~,ind2]=find( [longitudinal(:)==0 longitudinal(:)>0] );
severity_bs=LUT(sub2ind(size(LUT),ind1,ind2))
severity_bs = 4×1
2 2 4 4
Note that you have a typo in your second line: it is missing an l.

Plus de réponses (0)

Catégories

En savoir plus sur Physics dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by