How can I solve it: Matrix dimensions must agree.

1 visualización (últimos 30 días)
Aimee Jin
Aimee Jin el 25 de Oct. de 2020
Comentada: Walter Roberson el 25 de Oct. de 2020
function A = matrixCSums(M)
% M is a numeric matrix and A has the same size as M.
% Each element in A is the sum of the corresponding element in M and all
% the elements above it. Example:
% M = [ 1 3; ... A = [ 1 3; ...
% 4 5; ... 5 8; ...
% -7 2] then -2 10]
% Do NOT use any built-in functions other than size
if M ==[]
A=[];
else
A(1,:)=M(1,:); %initial row of A
[nr,nc]=size(M);
for i=2:nr
A(i,:)=A(i-1,:)+M(i,:);
end
end
When I call the function:
M = [ 1 3; 4 5; -7 2];
A = matrixCSums(M)
it says:
Error using ==
Matrix dimensions must agree.
Error in matrixCSums (line 9)
if M ==[]

Respuesta aceptada

Alan Stevens
Alan Stevens el 25 de Oct. de 2020
Replace
if M ==[]
with
if isempty(M)

Más respuestas (1)

drummer
drummer el 25 de Oct. de 2020
if M == []
A(M == []) = [];
else
% rest of your code here.
end
Hope that helps.
Cheers
  1 comentario
Walter Roberson
Walter Roberson el 25 de Oct. de 2020
M == [] is going to fail unless M is empty (but will work if M is a different size of empty).

Iniciar sesión para comentar.

Categorías

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