У меня есть кусок кода, здесь мне нужно упорядочить, как это значительно увеличивает время выполнения моего сценария:Как я могу векторизовать эти вложенные петли в Matlab?
size=300;
resultLength = (size+1)^3;
freqResult=zeros(1, resultLength);
inc=1;
for i=0:size,
for j=0:size,
for k=0:size,
freqResult(inc)=(c/2)*sqrt((i/L)^2+(j/W)^2+(k/H)^2);
inc=inc+1;
end
end
end
C, L, W, H и все константы. Поскольку размер ввода превышает 400, время выполнения слишком велико, чтобы ждать, и я могу наблюдать, как мое дисковое пространство сливается с гигабайтом. Любой совет?
Спасибо!
Первое, что вы могли бы сделать, это prealocate: 'freqResult = zeros (1, size^3);' – Marcin
Я забыл упомянуть, что я предопределяю эти утверждения: 'resultLength = (size + 1)^3; freqResult = zeros (resultLength, 1); 'Я думаю, что ваш заказ правилен. – jephex