2012-05-07 48 views
0

從兩個數組對我有一對夫婦的數組:Matrix在MATLAB

x = [0:pi/16:2*pi] 
y = [0:pi/16:2*pi] 

而且我想在這樣一個矩陣XY:

xY = [(0,0)  (0,pi/16)  ...  (0,2pi); 
     (pi/16,0) (pi/16,pi/16) ...  (pi/16,2pi); 
      :   :      : 
     (2pi,0) (2pi,pi/16) ...  (2pi,2pi)] 

我試過很多東西像這樣:

for i=1:length(x) 
    for j=1:length(y) 
     xy{i,j} = [{x(i),y(j)}]; 
    end 
end 

,但我遇到了很多錯誤。

我知道這應該是容易的,而最大的問題是,我的文章的標題(正因爲如此,該辦法,我尋求幫助)是錯誤的,所以我對此表示道歉。

我想我應該指出,我試圖與矩陣創建多層感知,將獲得培訓,這個公式:

fxy = cos(x)-3*sin(y); 

提前感謝!

回答

1

這正是meshgrid是專爲。

+0

看起來是這樣,謝謝! – Kirby

1

最簡單的方法就是,這是創建一個大小length(x)的矩陣-by- length(y) -by- 2

A = zeros(length(x), length(y), 2); 
for i = 1 : length(x); for j = 1 : length(y); A(i, j, :) = [x(i), y(j)]; end; end; 

在你的情況,矩陣A將有大小33x33x2。要使用索引獲得對i, j使用下面的代碼:

​​

或者你可以調整你的代碼,例如3維矩陣工作。