У меня есть три вектора A, B и C того же размера. A и B - числовые величины, а C - массив ячеек строк. Я хочу создать суб-векторы на основе уникальных значений B и C. Например, пустьСохранение индексов уникальных строк/элементов вектора в MATLAB
A = [0.45 0.89 0.12 0.35 0.40 0.93 0.12 0.35 0.72 0.59];
B = [1 1 3 1 8 1 8 8 1 1];
C = [{'Tom'}, {'Mary'}, {'Dick'}, {'Harry'}, {'Dick'}, {'Tom'}, {'Tom'}, {'Mary'}, {'Tom'}, {'Mary'}];
Итак, я первый пытался найти уникальные значения B и C, используя уникальную функцию MATLAB в. Результаты таковы:
unique(B)
ans =
1 3 8
unique(C)
ans =
'Dick' 'Harry' 'Mary' 'Tom'
Теперь я хочу, чтобы организовать вектор А уникальными значениями в B и C. Пусть индексы уникальных значений первого элемента уникального (B) являются [ row_b1, colb1], индексы второго элемента - [row_b2, colb2] и т. д. Затем, на основе уникальных значений в B, Я хотел бы генерировать следующие три вектора:
A_B1 = A(rowb1, colb1);
A_B2 = A(rowb2, colb2);
A_B3 = A(rowb3, colb3);
Аналогичным образом, на основе уникальных значений С, Я хотел бы генерировать следующие векторы:
A_C1 = A(rowc1, colc1);
A_C2 = A(rowc2, colc2);
A_C3 = A(rowc3, colc3);
A_C4 = A(rowc4, colc4);
Однако я ничего не нашел в уникальной команде, которая сообщает мне индексы уникальных значений в векторе ie row_b1, col_b1, ... и т. Д. Не могли бы вы указать, как получить эти индексы? Любая помощь будет оценена.
Редактировать 1: Я должен упомянуть, что я опубликовал общий случай. Но в моей проблеме A, B и C есть матрицы. Я понял, могу ли я решить это для вектора, тогда он должен быть аналогичным расширением для матрицы.
Edit2: Вот ответы я ожидаю:
A_B1 = [0.45 0.89 0.35 0.93 0.72 0.59]
A_B2 = [0.12]
A_B3 = [0.40 0.12 0.35]
и
A_C1 = [0.45 0.93 0.12 0.72]
A_C2 = [0.89 0.35 0.59]
A_C3 = [0.12 0.40]
A_C4 = [0.35]
'A' является вектором, но вы индексировать его как матрицу' A (rowb1, colb1) '. Кажется, вы работаете с векторами, когда ссылаетесь на строки 'row_b1' и' colb1', строку и столбец какой матрицы вы имеете в виду? –
Какой-либо из ответов работает для вас? – brodoll
Привет, Мохсен, см. Мое редактирование. Я отправил случай для вектора. Но в моей проблеме A, B и C могут быть матрицы. – roalddahl14