Cody: Problem 30 - function Sortrows
3 views (last 30 days)
Show older comments
Hi,
i'm "solving" number 30 cody's problem.
I think to solve that whit sortrows function.
If I have a z vector:
j = sqrt(-1);
z = [-4 6 3+4*j 1+j 0];
my funtion is:
function z = complexSort(z)
z(2,:)=sqrt(real(z).^2+imag(z).^2);
z=sortrows(z',-2);
z=z(:,1);
end
End it return the result
z =
6.0000 6.0000
3.0000 - 4.0000i 5.0000
-4.0000 4.0000
1.0000 - 1.0000i 1.4142
0 0
The question is: why imagine part in input is positive e sortrows trasform it in negative?
best regards
Marco
0 Comments
Accepted Answer
Ryan
on 27 Jul 2012
Edited: Ryan
on 27 Jul 2012
You were taking the complex conjugate of z. Be careful whenever you use ' to transpose in Matlab!
function z = complexSort(z)
z(2,:)=sqrt(real(z).^2+imag(z).^2);
z=sortrows(z.',-2);
z=z(:,1);
end
That should work for you.
1 Comment
Sean de Wolski
on 27 Jul 2012
+1. Note the . in front of the '
doc transpose %v.
doc ctranspose
More Answers (1)
Fatih Atilla PINAR
on 9 Jun 2020
function zSorted = complexSort(z)
zSorted = sort(z,2,'descend');
end
0 Comments
See Also
Categories
Find more on Shifting and Sorting Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!