Разделете матрицата на по-висока и по-ниска стойност от въведената скаларна стойност

Имам някакъв проблем с matlab, тъй като бях нов в този език за програмиране. Добре ето го:

Имам Matrix и съм го сортирал възходящо, например:

1
1
1
3
4
4
4
5
6
6
7
7
9
9
9
9
9

Това е матрица само с 1 колона. Искам да разделя матрицата на две групи с някаква скаларна стойност. Избирам ли 5 ​​като скалар, така че моята матрица ще бъде разделена на две групи по-високи от 5 и по-ниски от 5:

Очакван резултат :

Долна матрица:

1
1
1
3
4
4
4
5

Висша матрица:

6
6
7
7
9
9
9
9
9

Опитах да използвам команда max и min, но тази команда запазва размера на матрицата и заменя всички по-ниски числа от скалар (5) в 5. Това е проблем, тъй като за следващата стъпка искам да сумирам всяка по-ниска и по-висока матрица.

Бихте ли ми предложили някакъв трик? Много благодаря


person Drag    schedule 04.05.2012    source източник


Отговори (1)


Можете да използвате логическо адресиране, за да направите това:

LowValuesMatrix = Matrix(Matrix <= 5);
HighValuesMatrix = Matrix(Matrix > 5);

LowValuesMatrix =
 1
 1
 1
 3
 4
 4
 4
 5

HighValuesMatrix =
 6
 6
 7
 7
 9
 9
 9
 9
 9
person nrz    schedule 04.05.2012