Я проделал довольно много поисков и до сих пор не смог найти удовлетворительного ответа, поэтому мне жаль, что этот вопрос уже поднят.Matlab: Суммирование по массиву Размеры
Я зациклился на том, как суммировать размеры массива. У меня есть массив A (w0, lambda, 2048,2048), и я хотел бы иметь возможность определять второй массив U (w0, 2048, 2048), который состоит из суммы A по размерности lambda.
До сих пор я был определяющим как А, так и U следующим образом:
A = zeros(length(w0),length(lambda),2048,2048);
U = zeros(length(w0),2048,2048);
for ii = 1:length(w0) % Scan through spot sizes
for aa = 1:length(lambda) % Scan through wavelengths
A(ii,aa,:,:) = ASM(w0(ii),lambda(aa),z1,z2);
end
U(ii,:,:) = sum(A,2);
end
Где ASM это просто функция. z1 и z2 определены ранее и здесь не актуальны.
Я пытался придумать с другими возможными способами нахождения U (w0,2048,2048) как сумма по второму измерению А (лямбда), но не увенчались успехом ...
Спасибо за любые указатели, и еще жаль, если это уже было разрешено!
James.
Большое спасибо! Теперь он работает с первым вариантом. До сих пор не сталкивалась с функцией squeeze() - довольно новая для matlab. – James