Scramble the positions of a cell array
Show older comments
I have two cell array as follows
Z= (2,5) (2,3) (2,1) (2,2) (2,4)
(4,5) (4,3) (4,1) (4,2) (4,4)
(5,5) (5,3) (5,1) (5,2) (5,4)
(3,5) (3,3) (3,1) (3,2) (3,4)
(1,5) (1,3) (1,1) (1,2) (1,4)
W= 'ATGC' 'ACTG' 'AGCT' 'AATT' 'TATG'
'GCTA' 'GACT' 'TACG' 'TGAT' 'ATAT'
'TCGG' 'CATA' 'TAAT' 'TTTT' 'CTGC'
'AAGT' 'AAGG' 'TGGG' 'TGTA' 'CAAA'
'GTGG' 'CTCT' 'GATT' 'CGTG' 'CTGG'
Now i have a big problem....i need to create a new cell array 'G' where the value of W should be placed accprding to the positions given in Z.
For eg: the value ATGC (ie;the first element of W) should be placed at (2,5) of 'G'. Both the cell arrays are just examples...i need to do it for a 256*256 array. Please help.Thanks in advance
Accepted Answer
More Answers (1)
Michael Haderlein
on 21 Aug 2014
Dear Abirami,
one possibility:
ind=cellfun(@(x) sub2ind(size(Z),x(1),x(2)),Z);
[~,s]=sort(ind(:));
G=reshape(W(s),size(Z));
Best regards,
Michael
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!