Efficient Matrix Multiplication with Nested Functions for MATLAB Homework

  • Thread starter Thread starter Feodalherren
  • Start date Start date
  • Tags Tags
    Functions Matlab
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 3K views
Feodalherren
Messages
604
Reaction score
6

Homework Statement


Untitled.png

Homework Equations


[/B]
Matlab:
----------------------
[FONT=Courier New]function [C]=mymatmult(A,B)
[L1 C1]=size(A);
[L2 C2]=size(B);

if C1 ~= L2
  error('dimension mismatch');
end %if ERROR

C=zeros(L1,C2);
for i=1:L1
  for j=1:C2
  C(i,j)=A(i,:)*B(:,j);
  end %in for
end %out for
end %function
------------------------------
[FONT=Courier New]function B = MyTranspose(A)

[rows cols] = size(A);

B=zeros(cols,rows);

for i=1:rows
  for j=1:cols
  B(j,i) = A(i,j)+B(j,i);
  end %in for
end %out fo

end %function
------------------------

The Attempt at a Solution


Matlab:
function [A1, A2] = MyTransposeProduct(A)

%place your nested function here--------------------------
  function B = MyTranspose(A)

  [rows, cols] = size(A);

  B=zeros(cols,rows);

  for i=1:rows
  for j=1:cols
  B(j,i) = A(i,j)+B(j,i);
  end %end in for
  end %end out for
  end %end in funct

%end nested function------------------------------------------

%second nested function---------------------------------------

  function [C]=mymatmult(A,B)
  [L1, C1]=size(A);
  [L2, C2]=size(B);

  if C1 ~= L2
  error('dimension mismatch');
  end %if ERROR

  C=zeros(L1,C2);
  for i=1:L1
  for j=1:C2
  C(i,j)=A(i,:)*B(:,j);
  end %in for
  end %out for

  A1=mymatmult(A,MyTranspose(A));
  A2=mymatmult(MyTranspose(A),A);  end %function

%end second nested function-----------------------------------

end % main function
But nothing happens when I run this code. No errors and no result...
 
Last edited by a moderator:
Physics news on Phys.org
Look where you put the code to calculate A1 and A2.

Also, I don't understand why you wrote MyTranspose that way. Why does B appear on both sides of the assignment?
 
  • Like
Likes   Reactions: Feodalherren
Nevermind, figured it out. Thanks!