How to make a permanent change to a matrix using sortrows?

The code im writing, im using sort rows and its working great, it takes my array of random numbers and then puts it in order completely but it isnt a permanent change to the array. From what I can tell the last part of my code prints out the array,sorts it and then prints it again but the array goes back to normal? is there anyway to keep sortrow changes to my array?
a=0; b=0; c=0; d=0; e=0; f=0;
k = 80; u = 40; sigmas = .05; %GPa
c1 = (k + (4/3)*u) ; c2 = (k - (2/3)*u);
P = zeros(50,7);
N = zeros(10,6);
for i = 1:50
for j = 1:6
P(i,j) = (-.0025 + (.005*rand(1)));
end
end
%for di = 1:10
for i = 1:50
a = P(i,1); d = P(i,2); f = P(i,3); b = P(i,4); c = P(i,5); e = P(i,6);
sigmaxx = (a*c1 + a*c2 + a*c2); sigmayy = (d*c2 + d*c1 + d*c2);
sigmazz = (f*c2+f*c2+f*c1); sigmaxy = (2*b*u);
sigmazx = (2*c*u); sigmayz = (2*e*u);
F = ((sigmaxx - sigmayy)^2)+((sigmayy-sigmazz)^2)+((sigmaxx-sigmazz)^2)+6*((sigmaxy^2)+(sigmazx^2)+(sigmayz^2));
Cf = ((F - (2*sigmas^2))/(2*sigmas^2))^2;
P(i,7) = Cf;
end
disp(P)
sortrows(P,7)
disp(P)
>> GE
1.0e+05 *
0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.1659
0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.3517
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.1382
0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0815
-0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.4886
0.0000 -0.0000 0.0000 0.0000 -0.0000 -0.0000 1.7163
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.1106
0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.1178
0.0000 0.0000 -0.0000 -0.0000 0.0000 -0.0000 1.4394
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.3773
-0.0000 -0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.0505
-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.1971
-0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 1.2847
0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0548
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.7923
-0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 1.5805
0.0000 -0.0000 -0.0000 0.0000 0.0000 -0.0000 0.6276
0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.0000 1.1048
0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0482
-0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.4118
0.0000 0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.2474
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.5147
-0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 0.7107
0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0695
0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.1451
0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.8630
0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.1166
-0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.1223
-0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 0.8756
-0.0000 -0.0000 0.0000 0.0000 -0.0000 -0.0000 0.3255
0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.8802
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 1.6178
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 -0.0000 1.8305
0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.5213
-0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0000 2.2296
-0.0000 0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.3583
0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.1360
-0.0000 -0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0235
-0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.5958
-0.0000 -0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.2636
0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 1.1244
0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 2.1475
-0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.3680
0.0000 -0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0437
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.9815
-0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 0.2089
0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.1444
0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 1.5641
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.2793
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.2917
ans =
1.0e+05 *
-0.0000 -0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0235
0.0000 -0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0437
0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0482
-0.0000 -0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.0505
0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0548
0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0695
0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0815
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.1106
0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.1166
0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.1178
-0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.1223
0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.1360
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.1382
0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.1444
0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.1451
0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.1659
-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.1971
-0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 0.2089
0.0000 0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.2474
-0.0000 -0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.2636
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.2793
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.2917
-0.0000 -0.0000 0.0000 0.0000 -0.0000 -0.0000 0.3255
0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.3517
-0.0000 0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.3583
-0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.3680
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.3773
-0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.4118
-0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.4886
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.5147
0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.5213
-0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.5958
0.0000 -0.0000 -0.0000 0.0000 0.0000 -0.0000 0.6276
-0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 0.7107
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.7923
0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.8630
-0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 0.8756
0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.8802
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.9815
0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.0000 1.1048
0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 1.1244
-0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 1.2847
0.0000 0.0000 -0.0000 -0.0000 0.0000 -0.0000 1.4394
0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 1.5641
-0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 1.5805
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 1.6178
0.0000 -0.0000 0.0000 0.0000 -0.0000 -0.0000 1.7163
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 -0.0000 1.8305
0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 2.1475
-0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0000 2.2296
1.0e+05 *
0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.1659
0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.3517
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.1382
0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0815
-0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.4886
0.0000 -0.0000 0.0000 0.0000 -0.0000 -0.0000 1.7163
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.1106
0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.1178
0.0000 0.0000 -0.0000 -0.0000 0.0000 -0.0000 1.4394
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.3773
-0.0000 -0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.0505
-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.1971
-0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 1.2847
0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0548
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.7923
-0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 1.5805
0.0000 -0.0000 -0.0000 0.0000 0.0000 -0.0000 0.6276
0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.0000 1.1048
0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0482
-0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.4118
0.0000 0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.2474
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.5147
-0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 0.7107
0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0695
0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.1451
0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.8630
0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.1166
-0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.1223
-0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 0.8756
-0.0000 -0.0000 0.0000 0.0000 -0.0000 -0.0000 0.3255
0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.8802
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 1.6178
-0.0000 -0.0000 0.0000 -0.0000 -0.0000 -0.0000 1.8305
0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.5213
-0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0000 2.2296
-0.0000 0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.3583
0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.1360
-0.0000 -0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0235
-0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.5958
-0.0000 -0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.2636
0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 1.1244
0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 2.1475
-0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.3680
0.0000 -0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0437
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.9815
-0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 0.2089
0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.1444
0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 1.5641
-0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.2793
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.2917

 Accepted Answer

P = sortrows(P,7) ;
Most of the time functions don't operate "externally", so SORTROWS doesn't alter your array P defined in the workspace. It creates a new sorted array that it outputs. You have to store this output back into P if you want P to be the sorted version. If you wanted to keep the original, you could store it into a new variable:
P_sorted = sortrows(P,7) ;

4 Comments

Thanks for the reply, that makes a lot of sense why it would work that way.
Hey if you dont mind me asking, is there a way to run a script that produces a plot more than once , in the end plotting 10 lines on the same graph?
Yes, execute
hold on
before or after the first plot, and the following will be added as overlays.

Sign in to comment.

More Answers (0)

Categories

Asked:

on 16 Oct 2017

Edited:

on 17 Oct 2017

Community Treasure Hunt

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

Start Hunting!