我在for循環中使用meshgrid時犯了一個錯誤。讓我舉作爲一個例子下面的代碼:用meshgrid替換linspace
x=linspace(0,100,100);
y=linspace(0,100,100);
x0=[0 1 2 3];
y0=[4 5 6 7];
for i=1:4
for j=1:length(x)
for k=1:length(y)
r(i,j,k)=sqrt((x(j)-x0(i)).^2+(y(k)-y0(i)).^2);
end
end
end
我想我不必要地利用這裏的循環,並嘗試通過meshgrid
[x,y]=meshgrid(0:1:100);
for i=1:4
r(i,:,:)=sqrt((x(:)-x0(i)).^2+(y(:)-y0(i)).^2);
end
來取代它能否請你幫我改寫這個代碼?
我假設您的原始代碼中存在拼寫錯誤:您爲'k = 1:長度(y)'而循環'但是索引爲'y(j)'。你的意思是'y(k)'? – Floris