Function takes as input two nonempty matrices A and B and returns the product AB

3 visualizzazioni (ultimi 30 giorni)
My task is to write a MATLAB function that takes as input two nonempty matrices A and B and returns the product AB where the number of columns in A is the same as the number of rows in B. I have a small program written so far, however it is not fully developed. I am asking for assistance on where to go next with developing a program that is accurate. I apologize that there is not much in my program so far. Here is what I have so far:
function AB = ex2(A,B)
%
%
[NRows,NCols] = size(A);
[NRows,NCols] = size(B);
AB = zeros('NRows of A, NCols') % I am not sure what to put here
for row = 1:NRows
for col = 1:NCols
AB = A(row,col) * B(row,col);
end
end

Risposta accettata

Asad (Mehrzad) Khoddam
Asad (Mehrzad) Khoddam il 20 Ott 2020
function AB = ex2(A,B)
%
%
% we need rows and columns of both A and B
% ColsA should be equal to RowsB
[RowsA,ColsA] = size(A);
[RowsB,ColsB] = size(B);
AB = zeros(RowsA, ColsB);
for row = 1:RowsA
for col = 1:ColsB
AB(row,col) = sum(A(row,:)'.*B(:,col));
end
end
  2 Commenti
Sophie Culhane
Sophie Culhane il 20 Ott 2020
I am not able to use the sum command, is there another alternative that would work the same?
Asad (Mehrzad) Khoddam
Asad (Mehrzad) Khoddam il 20 Ott 2020
Yes
function AB = ex2(A,B)
%
%
% we need rows and columns of both A and B
% ColsA should be equal to RowsB
[RowsA,ColsA] = size(A);
[RowsB,ColsB] = size(B);
AB = zeros(RowsA, ColsB);
for row = 1:RowsA
for col = 1:ColsB
s = 0;
for k=1:colsA:
s = s + A(row,k)*B(k,col);
end
AB(row,col) = s;
end
end

Accedi per commentare.

Più risposte (1)

James Tursa
James Tursa il 20 Ott 2020
This is a matrix multiply, so you need to keep the rows and columns of the inputs separately. E.g.,
[NRowsA,NColsA] = size(A);
[NRowsB,NColsB] = size(B);
Then, the product will have dimensions NRowsA x NColsB. I.e.,
AB = zeros(NRowsA,NColsB);
For your result AB, you will be looping over the size of AB, so
for row = 1:NRowsA
for col = 1:NColsB
% code goes here to figure out AB(row,col)
end
end
You would need to write code to calculate the AB(row,col) element. You could do a dot product calculation here, or you could write another loop to interatively calculate it.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by