There is an error in my code

1 visualización (últimos 30 días)
Tianlan Yang
Tianlan Yang el 18 de Mzo. de 2021
Comentada: Cris LaPierre el 18 de Mzo. de 2021
Here is the function:
function [L,U] = eluinv(A)
[~,n]=size(A);
[L,U] = lu(A)
LU = roundingfixer(L*U);
if (A == LU)
disp('LU factorization is valid')
else
disp('A mistake was made somewhere.')
end
if (rank(U) == rank(A))
disp('U is an echelon form of A')
else
disp('A mistake was made somewhere.')
end
if (rank(A) == n)
% Use rref to row reduce the matrices
invL = [L eye(n)];
invU = [U eye(n)];
invL = rref(invL);
invU = rref(invU);
% Cut off the first half of the matrix
invL = invL(:,(n+1:n*2));
invU = invU(:,(n+1:n*2));
invA = roundingfixer(invU * invL)
P = roundingfixer(inv(A))
if (invA == P)
disp('LU works for calculating the inverse for A')
else
disp('Error in calculating the inverse for A')
end
else
sprintf('A is not invertible.')
invA = [];
end
end
roundingfixer.m:
function B = roundingfixer(A)
[m,n]=size(A);
A=closetozeroroundoff(A,7)
for i=1:m
for j=1:n
A(i,j) = round(A(i,j),8);
end
end
B=A;
end

Respuestas (1)

Cris LaPierre
Cris LaPierre el 18 de Mzo. de 2021
Editada: Cris LaPierre el 18 de Mzo. de 2021
Look at line 17: invL = [L eye(n)];
You are concatenating L and eye(n) horizontally. The error message is again telling you what the problem is. See this documentation page for more.
A = [1; 2]
A = 2×1
1 2
B = [3 4 5]
B = 1×3
3 4 5
C = [A B]
Error using horzcat
Dimensions of arrays being concatenated are not consistent.
  8 comentarios
Tianlan Yang
Tianlan Yang el 18 de Mzo. de 2021
Hi, I mean that is there a function that can replace horizontal concatenation (can both applied to row not equivalent situation)? Thank you so much!
Cris LaPierre
Cris LaPierre el 18 de Mzo. de 2021
I am not aware of a function that will do this for you. I believe you will need to write your code in a way to either ensure the two matrices have the same number of rows.

Iniciar sesión para comentar.

Categorías

Más información sobre Logical 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!

Translated by