# Conditioning a matrix for loop

조회 수: 2(최근 30일)
Santos García Rosado 2021년 2월 16일
댓글: Santos García Rosado 2021년 2월 17일
Hello Mathworks community! Could someone give me a hand?
I'm having trouble trying to create a matrix for loop. Since my actual code is complex, I'm going to propose a much simple idea.
Imagine I have a matrix A 4x12 input such as:
A = [1,2,3,4,5,6,3,5,4,2,5,1;
1,2,3,4,5,6,3,5,4,2,5,1;
12,5,6,9,2,3,5,3,4,3,6,1;
12,5,6,9,2,3,5,3,4,3,6,1]
And another matrix b:
b = [1, 2, 3;
2, 2, 1;
3, 2, 1;
1, 2, 6]
Let's say each row of A is divided in 3 subarrays with 4 positions each (12 positions in every row). Now, I'd like to sum each A position with the corresponding value of b. So b(1,1) would be added to A(1,1), A(1,2), A(1,3) and A(1,4); b(1,2) would be added to A(1,5), A(1,6), A(1,7) and A(1,8); ...
On the same loop, I would like to substract to every value of that output( the dimensions still are 4x12) the value of c corresponding to its row. (the first row of out minus c(1), the second row of out minus 12, ...
c = [10;12;14;16]
I'm working with much bigger data, so trying to do it "manually" wouldn't be useful.
Thank's for the help!
Santos

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

### 채택된 답변

Jon 2021년 2월 16일
You can do this without a loop, for example
out = [A(:,1:4)-b(:,1) A(:,5:8)-b(:,2) A(:,9:12)-b(:,3)]
out = out - c
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
Santos García Rosado 2021년 2월 17일
Thank's Jon. As you said, I have very long arrays so I'm forced to use a loop. I'll try to translate your code to mine and chek if it works.

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

R2020b

### Community Treasure Hunt

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

Start Hunting!