Hi
I have tow vectors A and B:
A = [4 8 5 9 1]
B = [3 5 4 2 1]
If I sort A with B like this:
C = A(B)
I will get:
C = [5 1 9 8 4]
But I want C like this:
C = [1 9 4 5 8]
How can I do that?
Thank you, M. Rajaei

 Akzeptierte Antwort

lvn
lvn am 4 Mär. 2014

4 Stimmen

[~,Bsort]=sort(B); %Get the order of B
C=A(Bsort)
C =
1 9 4 5 8

2 Kommentare

Mohsen Rajaei
Mohsen Rajaei am 4 Mär. 2014
OK. Thank you so much. I got it.
how can you do the same thing with n x 2 array?
I do it like this
vectors = [3 4;5 12];
modules = [5;13];
[~,modulesSort] = sort(modules); %Get the order of B
%C=A(modulesSort); %not works
% do this
vectorsSortedByModule = vectors(modulesSort,:);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by