Предположим, что «r» - это многомерный массив размера [N, N, M], а «tab» - таблица размера [N] со значениями 1..N (например, принять "вкладка = randperm (N)"). Я ищу эффективный способ сделать следующее:matlab: адресация нескольких строк в многомерном массиве
c = ones(M, 1);
for k=1:N
c = c .* squeeze(r(tab(k),k,:));
end
Я хотел бы сделать это в матричной форме, используя тычок, но не нашел решение, как «г (табл (1: N), 1: N, :) "возвращает матрицу NxNxM, а не N строк.
Любые предложения?
Что такое 'tab'? – Daniel
@DanielR: Из текста вопроса: "и tab - таблица размера [N] со значениями 1..N" –
@RobertP. верно; например возьмите «tab = randperm (N)» –