Conditioning a matrix for loop
1 view (last 30 days)
Show older comments
Santos García Rosado
on 16 Feb 2021
Commented: Santos García Rosado
on 17 Feb 2021
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
0 Comments
Accepted Answer
Jon
on 16 Feb 2021
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 Comments
More Answers (0)
See Also
Categories
Find more on Matrix Indexing 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!