# Write a program so that with help of 3 for-end loops we form a matrix C that will be equivalent to C= A*B - B*A

1 view (last 30 days)
Iva Budan on 29 Apr 2022
Commented: Jan on 2 May 2022
Let 2 matrices (A and B) be given in MatLab.Write a program so that with help of 3 for-end loops we form a matrix C that will be equivalent to C= A*B - B*A
Jan on 29 Apr 2022
Edited: Jan on 29 Apr 2022
This is a homework question. As usual, post, what you have tried so far and ask a specific question concern the remaining Matlab problem.
The actual problem is interesting. You can avoid to calculate A*B and B*A explicitly.
@Jakub Devera: If A*B and B*A is mathematically defined, A and B must be square matrices.

Srija Kethiri on 2 May 2022
Hi Iva,
From my understanding you want to to get a matrix C, where C = A*B - B*A. To get the matrix C it is possible only if A and B both are square matrices with same dimension.
The code for finding C is:
[c,d] = size(A);
[e,f] = size(B);
C = zeros(c,c);
if(c==d && e==f && c==e)
for i=1:c
for j=1:c
sum1 =0;
sum2 =0;
for p = 1:c
sum1 = sum1 + A(i,p)*B(p,j);
sum2 = sum2 +B(i,p)*A(p,j);
C(i,j) = sum1-sum2;
end
end
end
end
##### 2 CommentsShowHide 1 older comment
Jan on 2 May 2022
I agree with John.
Your code overwrites C(i,j) in each iteration of the inner loop. One variable would be enough for the accumulation.

Matt J on 2 May 2022
Edited: Matt J on 2 May 2022
A=rand(4); B=rand(4); %synthetic input data
M={A,B;B,A};
for i=1:4
end
for i=1:2
M{i,1}=M{i,1}*M{i,2};
end
C=0;
for i=1:2
C=C+M{i};
end
C-(A*B-B*A)%Check the result
ans = 4×4
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

### Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by