MATRIX COFACTOR
Mostrar comentarios más antiguos
I need to know a function to calculate the cofactor of a matrix, thank a lot!
7 comentarios
Quilee Simeon
el 21 de Ag. de 2018
cofactor matrix for a matrix A is just det(A)*inv(A)
Zoe Herrick
el 14 de Sept. de 2018
Editada: Walter Roberson
el 15 de Sept. de 2018
det(A)*inv(A) gives the adjugate or classical adjoint of matrix A which is the Transpose of the cofactor matrix.
This wiki article gives a brief layout of this:
Franco Salcedo Lópezz
el 14 de Nov. de 2019
Here I leave this code, I hope it helps. Regards..
function v = adj(M,i,j)
t=length(M);
v=zeros(t-1,t-1);
ii=1;
ban=0;
for k=1:t
jj=1;
for m=1:t
if ( (i~=k)&&(j~=m) )
v(ii,jj)=M(k,m);
jj++;
ban=1;
endif
endfor
if(ban==1)ii++;ban=0;endif
endfor
Walter Roberson
el 6 de Feb. de 2020
ii++ is not valid MATLAB though. And endif and endfor are not MATLAB either.
Fernando Salinas
el 10 de Nov. de 2020
I wrote this in GNU/Octave but I guess it should work on MATLAB
function cofactor = matrizCofactores(A)
[rows, cols] = size(A);
if rows == cols
for i = 1 : rows,
for j = 1 : cols,
Menor = A;
Menor(i,:) = [];
Menor(:,j) = [];
if mod((i+j),2) == 0
cofactor(i,j) = det(Menor);
else
cofactor(i,j) = -det(Menor);
endif
endfor
endfor
endif
endfunction
Natasha St Hilaire
el 7 de Oct. de 2021
What is "menor" short for?
Walter Roberson
el 8 de Oct. de 2021
I suspect that the English word would be "minor". The Spanish word "menor" can be translated as English "minor" in some situations.
Respuesta aceptada
Más respuestas (2)
Dr. Murtaza Ali Khan
el 28 de Sept. de 2019
A = [
2 4 1
4 3 7
2 1 3
]
detA = det(A)
invA = inv(A)
cofactorA = transpose(detA*invA)
2 comentarios
Franco Salcedo Lópezz
el 14 de Nov. de 2019
Editada: Franco Salcedo Lópezz
el 14 de Nov. de 2019
Here I leave this code, I hope it helps. Regards
function v = adj(M,i,j)
t=length(M);
v=zeros(t-1,t-1);
ii=1;
ban=0;
for k=1:t
jj=1;
for m=1:t
if ( (i~=k)&&(j~=m) )
v(ii,jj)=M(k,m);
jj++;
ban=1;
endif
endfor
if(ban==1)ii++;ban=0;endif
endfor
Walter Roberson
el 11 de Oct. de 2021
This is not MATLAB code. It might be Octave.
Francisco Trigo
el 6 de Feb. de 2020
0 votos
The matrix confactor of a given matrix A can be calculated as det(A)*inv(A), but also as the adjoint(A). And this strange, because in most texts the adjoint of a matrix and the cofactor of that matrix are tranposed to each other. But in MATLAB are equal. I found a bit strange the MATLAB definition of the adjoint of a matrix.
1 comentario
Zuhri Zuhri
el 28 de Sept. de 2021
adjoint matrix is the transpose of the cofactor matrix so the above result is correct
Categorías
Más información sobre Performance and Memory 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!