Two conditional operations can be used in matlab or do I need to use double if?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
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?
Réponse acceptée
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))
Note that you have a typo in your second line: it is missing an l.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Electrical Block Libraries 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!