0
我想通過該函數創建一個N * N的矩陣A:如何有效地在matlab中創建這個矩陣?沒有for循環?
其中x和y是N d的載體。我可以通過創建4個嵌套for循環,但如何更有效地實現它?有沒有for循環的方法?
非常感謝。
我想通過該函數創建一個N * N的矩陣A:如何有效地在matlab中創建這個矩陣?沒有for循環?
其中x和y是N d的載體。我可以通過創建4個嵌套for循環,但如何更有效地實現它?有沒有for循環的方法?
非常感謝。
使用元素明智的。*操作將比4個嵌套for循環快得多。我想你想要的東西是這樣的:
M = 100;
K = 100;
N = 40;
x = linspace(0,1,N);
y = linspace(0,1,N);
%order reversed matches i,j notation in question
[Y,X] = meshgrid(y,x);
A = zeros(size(X));
for m = 1:M
for k = 1:K
A = A + sqrt(m^2 + k^2)*sin(m*X).*cos(k*Y);
end
end
我假設它是'cos(k * y_j)'而不是'n'? – Shai
'M'和'K'是什麼? – Shai
如果你知道M和K是什麼,你可以用矩陣形式做所有事情,從而避免了循環。 – GameOfThrows