how to replace the values of one matrix to another
Show older comments
c=[1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
f=[ 1 2 5 6
3 4 7 8
9 10 13 14
11 12 15 16]
12 13 17 18]
f matrix is divided into 2 X 2 matrix ie first block is
ie
f(1,1) f(1,2)
f(2,1) f(2,2)
next block is
f(1,3) f(1,4)
f(2,3) f(2,4)
f matrix is divided into block for all values present
every 4 value from c matrix is added to this 2X2 matrix formed from f matrix
ie c(1,1) is added to f(1,1) and c(1,2) is added to f(1,2)
and c(1,3) is added to f(2,1) and c(1,4) is added to f(2,2)
ie to the first block.. next 4 values from c block is added to
next block ie c(1,5) to c(1,8) is added to
f(1,3) & f(1,4) & f(2,3) & f(2,4) please help me i am not able to define the loops properly
Thanks in advance
Answers (2)
Image Analyst
on 27 Nov 2012
0 votes
You can use blockproc().
Andrei Bobrov
on 27 Nov 2012
f=[ 1 2 5 6
3 4 7 8
9 10 13 14
11 12 15 16]
c=[1;1]*(1:8);
f2 = permute(reshape(f,[2 2 2 2]),[3 1 4 2]);
out0 = f2 + reshape(c.',size(f2));
out = reshape(permute(out0,[2 3 1 4 ]),size(f,1),[]);
Categories
Find more on String 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!