Matrixes not multiplying correctly using for loops

3 visualizaciones (últimos 30 días)
Mason Reilly
Mason Reilly el 19 de Mzo. de 2024
Respondida: Catalytic el 20 de Mzo. de 2024
I have two matrixes (3x4 and 4x3) that I'm trying to multiply with the use of if and for loops, but it appears there is an issue with the indexing of the matrixes. The problem contains code meant to check the dimensions of each matrix and ensure that the column count of the first matrix is equal to the row count of the second matrix. However, when I run the code, it gives me an error of "Index in position 2 exceeds array bounds. Index must not exceed 3". Is there an issue in the for loop that is perhaps messing with the multiplication?
af = [ af '.txt' ] ; a = load(af) ; [n,m] = size(a) ;
bf = [ bf '.txt' ] ; b = load(bf) ; n1 = size(b,1) ; m1 = size(b,2) ;
if n ~= m1
error('incorrect dimensions (rows)') ;
end
if m ~= n1
error('incorrect dimensions (columns)') ;
end
c = zeros(n,m) ;
for i = 1 : n
for j = 1 : m
c(i,j) = a(i,j) * b(i,j) ;
end
end
disp(c)
  4 comentarios
Torsten
Torsten el 20 de Mzo. de 2024
The element (i,j) of C = A*B is given by
sum_k (a_ik * b_kj)
Do you think that
for i = 1 : n
for j = 1 : m
c(i,j) = a(i,j) * b(i,j) ;
end
end
will give a result for c(i,j) that is equivalent to that sum ?
Chuguang Pan
Chuguang Pan el 20 de Mzo. de 2024
The matrix multiplication is , suppose that the size of a is [n m], the size of b is [m p], the size of c is [n p].

Iniciar sesión para comentar.

Respuestas (2)

Matt J
Matt J el 20 de Mzo. de 2024
Editada: Matt J el 20 de Mzo. de 2024
[n,w]=size(a);
[h,m]=size(b);
assert(w==h,'Inner dimensions incompatible')
c=zeros(n,m);
for i = 1 : n
for j = 1 : m
c(i,j) = a(i,:) * b(:,j) ;
end
end

Catalytic
Catalytic el 20 de Mzo. de 2024
One loop -
[n,w]=size(a);
[h,m]=size(b);
if w~=h
error('Inner dimensions do not agree.')
end
c=0;
for k = 1 : w
c = c + a(:,k).*b(k,:);
end

Categorías

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