簡體   English   中英

如何有效地在Matlab中創建此矩陣? 沒有for循環?

[英]How to create this matrix in matlab efficiently? Without for loop?

我想通過此函數創建一個N * N矩陣A:

在此處輸入圖片說明

其中x和y是Nd向量。 我只能創建被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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM