How to Sort a matrix and a vector?

I have a vector of 1 column and a matrix of 5 x5, what I need to do is, assing 1 number of P to one numer of time in the first row, like number 1 to 1.7597 and 2 to 2.1777, is like colum per row but I need to assing it randomly, the number 1 have 5 changes to pick a number of the firts row, the number 2 have 5 changes of the row 2. How can I do this? I'm using matlab 2010
P =
1
2
3
4
5
time =
1.7597 1.6340 1.7157 1.6738 2.0185
2.3452 2.1777 2.2866 2.2308 2.6901
3.1412 2.9169 3.0627 2.9880 3.6032
2.8993 2.6922 2.8268 2.7579 3.3256
4.5961 4.2678 4.4812 4.3719 5.2720

 Accepted Answer

Try this:
a=eye(5);
b=randperm(5);
c=a(b,:);
time(logical(c))=P;

3 Comments

I have a question about this, it sends me a matrix with ones an zeros, I believe that I have to take the position where is the number one and that is the position that is been assing to the P number 1, but how can I take the value of that position in decimal, like
if 1 is in i1 then i1=1.7597
If the solution provided by Fangjun is not correct, you should give an example of expected inputs and outputs instead of trying to describe it with words. I see you gave P and time, but what result do you expect. SHOW the result, don't describe it. You can add it to your original question above by clicking the Edit button.
@Ami, You need to clarify your comments. Reading your original question, you want to put P(1) into the first row of time randomly, P(2) into the second row of time randomly, etc. My code did that. Are you asking a separate question?

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!