我有几个阵列:
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);
提前致谢!
答案 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
的目的。