Changing Indexing Order in matrix raws

7 views (last 30 days)
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) .

Accepted Answer

KSSV
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
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.

Sign in to comment.

More Answers (2)

madhan ravi
madhan ravi on 1 May 2019
array1(array1~=0)=array2

Jos (10584)
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

Community Treasure Hunt

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

Start Hunting!