Changing Indexing Order in matrix raws
2 views (last 30 days)
Show older comments
Good day, everyone! I have the following array(1) = [0 0 0 0 0 0 0 0 0 1 2 3 4 5] (14 elements in total, for example) and I can derrive respective indexes of the elements in it. The other array(2) = [12 11 14 5 1] contains a set of indexes for non-zero elements in array(1) (mapping one-to-one - so 1 should have index 12, 2 - index 11, etc.). How can I sort array(1) with respect to indexes in array(2) with no use of loop structure? (I solved it with loop) .
0 Comments
Accepted Answer
KSSV
on 1 May 2019
a1 = [0 0 0 0 0 0 0 0 0 1 2 3 4 5] ;
a2 = [12 11 14 5 1] ;
a3 = zeros(size(a1)) ;
a3(a2) = a1(a1~=0)
1 Comment
ahmad tourei
on 5 May 2020
Thanks a lot. after searching for 2 deays, i found my answer for labeling the rows and colomns of matrices by reading your suggest.
More Answers (2)
Jos (10584)
on 1 May 2019
Your question is a little confusing, but here is my take on it:
A1 = [0 0 0 0 0 0 0 0 0 1 2 3 4 5]
A2 = [12 11 14 5 1]
out([numel(A1) A2]) = [0 A1(A1~=0)]
% 5 0 0 0 4 0 0 0 0 0 2 1 0 3
0 Comments
See Also
Categories
Find more on Shifting and Sorting Matrices 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!