получить значения значений матрицы и отсортировать их по убыванию MATLAB - PullRequest
1 голос
/ 23 февраля 2011

Как получить величину каждого значения в матрице, так:

 0.2964    0.8765    0.3793
 0.6832   -0.4721    0.5571
-0.6674   -0.0941    0.7387

преобразовано?

 0.2964    0.8765    0.3793
 0.6832    0.4721    0.5571
 0.6674    0.0941    0.7387

, чтобы отсортировать по убыванию, мы делаем сортировку (A, «нисходящий»), но, поскольку у меня есть отрицательные значения, я бы хотел получить величины и затем отсортировать, можно ли это сделать в одной инструкции ?? (get magnitudes and sort them in descending order)

, поэтому в конце мы получим

0.8765
0.7387
0.6832 
0.6674
0.5571
0.3793 
0.4721
0.2964
0.0941 

Ответы [ 4 ]

4 голосов
/ 23 февраля 2011

Попробуйте sort(abs(A(:)),'descend')

3 голосов
/ 23 февраля 2011

Что по этому поводу:

>> a

a =

    0.2964    0.8765    0.3793
    0.6832   -0.4721    0.5571
   -0.6674   -0.0941    0.7387

>> temp=sort(abs(a(:)),'descend')

ans =

    0.8765
    0.7387
    0.6832
    0.6674
    0.5571
    0.4721
    0.3793
    0.2964
    0.0941
3 голосов
/ 23 февраля 2011

Использование SORT и ABS :

>> x = [0.2964 0.8765 0.3793;  0.6832 -0.4721 0.5571; -0.6674 -0.0941 0.7387]

x =

                    0.2964                    0.8765                    0.3793
                    0.6832                   -0.4721                    0.5571
                   -0.6674                   -0.0941                    0.7387

>> sort(abs(x(:)), 'descend')

ans =

                    0.8765
                    0.7387
                    0.6832
                    0.6674
                    0.5571
                    0.4721
                    0.3793
                    0.2964
                    0.0941
1 голос
/ 23 февраля 2011

Используйте функцию abs () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...