Как я могу разбить матрицу координат на основе значения у? - PullRequest
1 голос
/ 12 октября 2010

У меня есть матрица 2 на 30 v, содержащая пары координат x и y.Как я могу сделать другую матрицу, чтобы взять все точки v, чьи координаты y положительные?

Ответы [ 3 ]

0 голосов
/ 12 октября 2010
vPos = v(:, v(2,:) > 0);

создает описанную вами подматрицу 2 на n.

0 голосов
/ 13 марта 2011

Вы используете эту простую индексацию, чтобы извлечь положительные значения из обеих строк и объединить обе строки, чтобы сформировать требуемые все положительные значения.

V = randn (2,5);

V =

0.7873    0.3199   -0.3114   -1.0257   -0.2099

-0,8759 -0,5583 -0,5700 -0,9087 -1,6989

% первый ряд

f_row = V (1, :);

f_indeX = find (f_row> 0);

f = f_row (f_indeX);

% второй строки

s_row = V (2, :);

s_indeX = find (s_row> 0);

s = s_row (s_indeX);

% объединить первую и вторую строки, чтобы получить всеположительные значения

posValues ​​= [fs];

posValues ​​=

0.7873    0.3199    0.6647    0.8810    1.8586    0.1034    0.1136    1.4790    0.7847

Вышеуказанные значения являются положительными значениями вкак первый, так и второй ряд.Надеюсь, это поможет?

0 голосов
/ 12 октября 2010

Я предлагаю вам прочитать документацию по матричной индексации , и, в частности, часть о логической индексации . Я считаю, что решение, которое вы ищете, выглядит примерно так:

vSub = v(:,v(2,:) > 0);  %# Extract columns where the second row is > 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...