matlab中两个数组的对矩阵

时间:2012-05-07 22:31:47

标签: matlab matrix perceptron neural-network

我有几个阵列:

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);

提前致谢!

2 个答案:

答案 0 :(得分:1)

最简单的方法是创建大小为length(x)的矩阵 - 按 - 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获取对,请使用以下代码:

 squeeze(A(i, j, :))

或者您可以调整代码以使用这样的三维矩阵。

答案 1 :(得分:1)

这正是meshgrid的目的。