if statement with and or

3 visualizaciones (últimos 30 días)
Marco Lepidi
Marco Lepidi el 28 de Dic. de 2021
Comentada: Marco Lepidi el 28 de Dic. de 2021
Hi sorry, i want to create a code to know if a generic matrix A is positive definite. On my version of matlab (2016) when i write the second & the code gives me an error saying that "Matrix dimensions must agree". Can you help me?
A=[13/4 1/2 0; 1/2 17/4 1/2; 0 1/2 21/4]
A = 3×3
3.2500 0.5000 0 0.5000 4.2500 0.5000 0 0.5000 5.2500
[n,m]=size(A);
D_A=diag(A);
M_A=A-diag(D_A);
if n==m & A==A' & (abs(D_A)>sum(abs(M_A),2) | abs((D_A)')>sum(abs(M_A),1)) & diag(A)>0
disp 'A è DEFINITA POSITIVA'
end
A è DEFINITA POSITIVA
  12 comentarios
Voss
Voss el 28 de Dic. de 2021
isequal is for comparing arrays (especially non-scalar arrays). all is for checking a condition on elements of an array.
Marco Lepidi
Marco Lepidi el 28 de Dic. de 2021
@Benjamin thank you very much

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Performance and Memory en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by