Сплит-матрица согласно значению индекса-вектора в MATLAB

109
12

Я имею матрицу nx3 как следующее

1 x1 y1 
2 x2 y2
2 x3 y3
1 x4 y4
:
:
1 (or2) xn yn

это сигнал, поступающий из двух каналов, но записанный в той же матрице. Я хотел бы разбить матрицу на две матрицы

M1 = 

1 x1 y1
1 x4 y4
:
:
1 xi yi

M2=

2 x2 y2
2 x3 y3
:
:
2 xj yj

спросил(а) 2021-01-25T16:29:57+03:00 5 месяцев назад
1
Решение
63

Вы можете использовать логический индекс:

% generate some input data:
N = 10;
val = randi([1,2],[1,10]);
x = rand(1,N);
y = rand(1,N);
in = [val;x;y]';

% select all values where the value in the first column is 1
M1 = in(in(:,1)==1,:);
% select all values where the value in the first column is 2
M2 = in(in(:,1)==2,:);

ответил(а) 2021-01-25T16:29:57+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема