How do I create a matrix C that is comprised of values from matrices A and B, using a nested for loop?

조회 수: 20 (최근 30일)
Hello, I have a question that says:
Where Cij is a 4x4 matrix and Cij= aij + bij for 1 =< i,j =< 2
aij - bij for 3 =< i,j =< 4
for all other values = 0
aij and bij are elements of the matrices A and B, use for loops.
Below i have given the matrices of A and B, I have also attempted this two ways, one includes a for loop but doesnt work. The other doesn't include a for loop but does work. Is there a way I can have it include a for loop and work haha, thanks for any help!
This way works, but no for loop:
code{A = [2 2 3 4; 1 0 1 1; 5 2 1 2; -1 2 -1 2];
B = [2 3 4 5; -1 0 2 2; 7 2 1 4; 2 0 1 2];
C = zeros(4);
a1 = A(1:2,1:2);
b1 = B(1:2,1:2);
a3 = A(3:4,3:4);
b3 = B(3:4,3:4);
add = A(1:2,1:2)+B(1:2,1:2);
sub = A(3:4,3:4)-B(3:4,3:4);
Z = zeros(2);
C = [add Z; Z sub]
% This way the code works but doesn't give the correct matrix for C, but i think something similar to this method is what the % quesiton is asking, includes for loop:
for A=1:2
for B=1:2
C(A,B)=A+B;
end
end
for A=3:4
for B=3:4
C(A,B)=A-B
end
end
% I'm sorry if it's an easy fix, any help is greatlu appreciated!

채택된 답변

Girijashankar Sahoo
Girijashankar Sahoo 2021년 5월 19일
C=zeros(4)
A = [2 2 3 4; 1 0 1 1; 5 2 1 2; -1 2 -1 2];
B = [2 3 4 5; -1 0 2 2; 7 2 1 4; 2 0 1 2];
for i=1:4
j=1:2
C(i,j)=A(i,j)+B(i,j)
end
for i=1:4
j=3:4
C(i,j)=A(i,j)-B(i,j)
end

추가 답변 (1개)

Kartikay Sapra
Kartikay Sapra 2021년 5월 19일
C = zeros(4)
A = reshape(1:16, 4, 4)
B = reshape(17:32, 4, 4)
C(1:2, 1:2) = A(1:2,1:2) + B(1:2,1:2);
C(3:4, 3:4) = A(3:4,3:4) - B(3:4,3:4);
C
You were on the right path!
Remember that indices while iterating i and j would be same for all A, B and C. So we can use the MATLAB matrix slicing properties.

카테고리

Help CenterFile Exchange에서 Sudoku에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by