Length/Index based if else statements
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Fawad Farooq Ashraf
el 1 de Mayo de 2022
Comentada: Fawad Farooq Ashraf
el 30 de Jul. de 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 comentarios
Respuesta aceptada
Voss
el 1 de Mayo de 2022
Editada: Voss
el 1 de Mayo de 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 comentarios
Joe Jones
el 27 de Jul. de 2022
Dear
Have you solved this problem? I met the error recently.
compilation of model failed while trying to resolve underspecified signal dimensions
Más respuestas (0)
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!