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

조회 수: 3 (최근 30일)
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

채택된 답변

Asad (Mehrzad) Khoddam
Asad (Mehrzad) Khoddam 2020년 10월 20일
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
Sophie Culhane
Sophie Culhane 2020년 10월 20일
I am not able to use the sum command, is there another alternative that would work the same?
Asad (Mehrzad) Khoddam
Asad (Mehrzad) Khoddam 2020년 10월 20일
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

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

James Tursa
James Tursa 2020년 10월 20일
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.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by