Как объединить строки матрицы, представленные другим вектором?

Я хочу взять объединение некоторых строк матрицы x. Номера строк, объединение которых должно быть выполнено, задаются вектором r. Есть ли встроенная функция в MATLAB, которая может это сделать?

x = [1  2  4  0  0; 
     3  6  5  0  0;
     7  8 10 12  9;
     2  4  6  7  0;
     3  4  5  8 12];

r = [1, 3, 5]; 

person Tariq Islam    schedule 29.06.2017    source источник


Ответы (2)


Я думаю, что это сработает для вас — сначала возьмите подматрицу x(r,:) с нужными вам строками, а затем найдите в ней все уникальные значения:

unique(x(r,:))

ans =
     0
     1
     2
     3
     4
     5
     7
     8
     9
    10
    12
person EBH    schedule 29.06.2017

Вы могли бы сделать это так

>>> union(union(x(r(1),:),x(r(2),:)),x(r(3),:))

ans =

  0     1     2     3     4     5     7     8     9    10    12

или настройте цикл for, который выполняет итерацию по вектору r для вычисления всех союзов

person Dan    schedule 29.06.2017