2013-05-12 19 views
2

Учитывая матрицу A (mxn) и вектор B (mx1) Я хочу, чтобы создать вектор C (mx1), в котором каждый элемент строки является ряд элементы A из колонки индексируется B ,
Возможно ли это, без использования петель?вектора как индекс столбца в матрице

A = [1 2; 3 4; 5 6]; 
B = [2 1 1].'; 

Тогда я хочу:

C = [2 3 5].'; 

ответ

5

Преобразование индексов столбцов B линейных индексов, а затем использовать их, чтобы ссылаться на элементы в A:

idx = sub2ind(size(A), (1:size(A, 1)).', B); 
C = A(idx); 

(для получения дополнительной информации, читайте часть о линейном индексировании в this answer).

Смежные вопросы