С помощью следующих переменных:Вычислить каверзный сумму в Matlab
m = 1:4; n = 1:32;
phi = linspace(0, 2*pi, 100);
theta = linspace(-pi, pi, 50);
S_mn = <a 4x32 coefficient matrix, corresponding to m and n>;
Как рассчитать сумму по м и п из S_mn*exp(1i*(m*theta + n*phi))
, т.е.
Я думал о таких вещах, как
[m, n] = meshgrid(m,n);
[theta, phi] = meshgrid(theta,phi);
r_mn = S_mn.*exp(1i*(m.*theta + n.*phi));
thesum = sum(r_mn(:));
но это требует theta
и phi
иметь такое же количество элементов, как m
и n
, и это дает мне только один элемент в ответ - я хочу матрицу с размером meshgrid(theta,phi)
, независимо от размеров theta
и phi
(т.е. Я хочу иметь возможность оценить сумму как функцию theta
и phi
).
Как это сделать в MATLAB?
Я собираюсь сделать это для высоких высоких разрешений в '' phi' и theta' по всему диапазону [- pi, pi] x [0, 2pi], для 2000 временных меток. Мне нужна более высокая производительность, чем эта. –
Возможно, если бы вы сказали что-то о ваших потребностях в первую очередь, это может помочь в будущем? –
Во всяком случае, только WANTING компьютер, чтобы работать быстрее, не помогает. Существует фиксированное количество кратных и добавляет здесь, и ваш компьютер будет обрабатывать их только так быстро, как это будет сделано. Если вам нужен более быстрый компьютер, то купите его. Как бы то ни было, приведенная выше схема полностью векторизована, и в ней нет провалов. –