Borrar filtros
Borrar filtros

matrix addition different dimension using for loops.

3 visualizaciones (últimos 30 días)
Hi,
I am trying to do matrix addition of 2*4 to fit in 4*4 matrix. I am using for loops to get me familiarize with loops so that i can use it for image matrix manupulation. But with my code my output is 2*4 instead of 4*4.. could someone explain me the concept or the logic i am lacking here ..
a = [11:14; 15:18];
b = [3 2 3 1; 2 1 1 1;1 3 3 2; 2 1 1 3];
for i = 0
for j = 0
for x = 1:2
for y = 1:4
c(i+x,j+y) =b(i+x,j+y)+a(x+i,y+j);
end
end
end
end
  2 comentarios
Walter Roberson
Walter Roberson el 16 de Ag. de 2020
If the first matrix were
1 2 3 4
5 6 7 8
and the second matrix was all zero, then what would you want the result of the addition to be ?
Malini Bakthavatchalam
Malini Bakthavatchalam el 16 de Ag. de 2020
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
This would be my resultant matrix

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 16 de Ag. de 2020
%this code will fail if a or b is empty, or if one size is not an exact multiple of the other
asz = size(a);
bsz = size(b);
maxsz = max(asz,bsz);
arep = maxsz ./ asz;
brep = maxsz ./ bsz;
ar = repmat(a, arep);
br = repmat(b, brep);
c = ar + br;
That is, create new matrices that contain the old matrices copied as many times as needed.
  3 comentarios
Walter Roberson
Walter Roberson el 16 de Ag. de 2020
Editada: Walter Roberson el 16 de Ag. de 2020
ar = repmat(a, arep);
can be replaced with
[arows, acols, apanes] = size(a);
ar = zeros(arows*arep(1), acols*arep(2), apanes, class(a));
for J = 1 : arep(1)
arows = (J-1)*arows+1 : J*arows;
for K = 1 : arep(2)
acols = (K-1)*acols+1 : K*acols;
ar(arows, acols, :) = a;
end
end
Walter Roberson
Walter Roberson el 16 de Ag. de 2020
I fixed a typing mistake in setting the class of ar

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices 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