How can I use an empty matrix in a logical if statement?
42 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
K
el 22 de En. de 2014
Respondida: Jackson
el 20 de Jul. de 2017
Hello,
I have a program that evaluates mode shapes using the null space of an 8X8 matrix, "K". It works great when the null space exists, and I get an 8X1 vector for "u". However, for some values of "K" there is no null space, so for that "u" I get "Empty matrix: 8-by-0" and need to use a different method.
I tried to use
if eval(['u',num2str(ii),'==[]'])
to test if u is an empty matrix, but I get an error that tells me that "Matrix dimensions must agree". Is there any way to use an if statement that will run only if u is an empty 8x0 matrix?
(And yes, I know that eval + num2str is frowned upon, I didn't write that part! Apologies in advance!)
Thanks! Kaitlin
0 comentarios
Respuesta aceptada
Bruno Pop-Stefanov
el 22 de En. de 2014
Editada: Bruno Pop-Stefanov
el 22 de En. de 2014
if isempty(u)
% do something
else
% do something else
end
Más respuestas (1)
Jackson
el 20 de Jul. de 2017
When given a numeric array, if statements look at the first element and return true if it is non-zero. If the array is empty then this appears to be interpreted as false. Run the following:
if []
disp TEST1
end
if 0 : 10
disp TEST2
end
if 1 : 10
disp TEST3
end
a = [] ;
b = 1 : 10 ;
if a
disp TEST4
elseif b
disp TEST5
end
And only TEST3 and TEST5 are printed on the command line.
0 comentarios
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!