Octave / MATLAB: использование матрицы для доступа к элементам матрицы без циклов - PullRequest
0 голосов
/ 04 мая 2018

Рассмотрим две матрицы:

>> columns = [1,3,2,4]

и

>> WhichSet = 
       [2, 2, 1, 2;
        1, 1, 2, 1;
        1, 2, 1, 2;
        2, 1, 2, 2]

Мое намерение сделать следующее :

>> result = [WhichSet(1,columns(1)), WhichSet(2,columns(2)), WhichSet(3, columns(3)) and WhichSet(4, columns(4))]
result = [2,2,2,2]

без петель.

1 Ответ

0 голосов
/ 04 мая 2018

Потому что, как работает индексация, вы не можете просто подключить их, как они есть, если вы не используете линейное индексирование

Ваши желаемые линейные индексы:

ind=sub2ind(size(WhichSet),1:size(whichSet,1),columns);

Тогда

out=WhichSet(ind);
...