Length/Index based if else statements
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Fawad Farooq Ashraf
le 1 Mai 2022
Commenté : Fawad Farooq Ashraf
le 30 Juil 2022
I have a vector of variable length, for example
b = [0.25;0.5;0.75;1;1.5;1.75;2.0];
and based on the length of this vector, I have some specific parameter K against each element of b, x is the input and my final output is m
if x < b(1)
m = K(1);
elseif x < b(2)
m = K(2);
elseif x < b(3)
m = K(3);
elseif x < b(4)
m = K(4);
elseif x < b(5)
m = K(5);
elseif x < b(6)
m = K(6);
else
m = K(7);
end
I want to generalize my code based on the length of b. Here, the length was 7 so I had to run it manually like this for 7 elements. How can I generalize this for any length of b?
0 commentaires
Réponse acceptée
Voss
le 1 Mai 2022
Modifié(e) : Voss
le 1 Mai 2022
idx = find(x < b,1);
if isempty(idx)
idx = numel(b);
end
m = K(idx);
The above assumes b is sorted in ascending order, as in the example. If b is not necessarily sorted, you'd have to sort it first.
3 commentaires
Joe Jones
le 27 Juil 2022
Dear
Have you solved this problem? I met the error recently.
compilation of model failed while trying to resolve underspecified signal dimensions
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Resizing and Reshaping Matrices 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!