How do you check if an inputed number is an array/vector or just 1 value?
Mostrar comentarios más antiguos
Using function [a, b, c, d] = function_name(a,b,c,d)
I know that if it's an array, [] will be used in the input and the script will have to call a position of an array eg. y(1) or y(2)
If it's a discrete value it will just be y
Basically, instead of calling 1 value of a, i want to call 2 or more, etc
I don't know if that makes any sense, but it would be very helpful if someone could please just help me out.
Respuesta aceptada
Más respuestas (2)
Star Strider
el 25 de Abr. de 2014
Editada: Star Strider
el 25 de Abr. de 2014
If you want to check whether a particular argument is a scalar (single-value) or an array, use the size function:
[r,c] = size(x)
if (r > 1) | (c > 1)
xscalar = 0;
else
xscalar = 1;
end
Then you can treat it as a vector later in your code if xscalar = 0 or a scalar if xscalar = 1.
3 comentarios
Madeleine
el 25 de Abr. de 2014
Star Strider
el 25 de Abr. de 2014
My pleasure!
giannit
el 12 de Abr. de 2021
You can do it in one line
xscalar = isscalar(x)
Rik
el 12 de Abr. de 2021
In my view using numel or isscalar (introduced somewhere between v6.5 and v7.1) would be a better solution.
xscalar = numel(x)~=1;
xscalar = isscalar(x);
That way you can avoid size. numel is useful if you have old releases to consider, but otherwise isscalar should work just fine.
Categorías
Más información sobre Elementary Math en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!