我的方格为10 x 10。 v1
是水平坐标的矢量,v2
是包含垂直坐标的矢量。从这两个向量,我想构建所有100个点。
这是一个2乘2的例子:
v1 = [1 2];
v2 = [3 4];
然后我要生成的4个点是:
p(1,:) = [1,3]
p(2,:) = [1,4]
p(3,:) = [2,3]
p(4,:) = [2,4]
如何在MATLAB中完成?
答案 0 :(得分:3)
您需要使用meshgrid
甚至更好:ndgrid
。两个函数的概念是相同的,但ndgrid
更通用,并且输出的排序通常更有用。
x = [1,2];
y = [3,4];
[X, Y] = ndgrid(x, y);
P = [X(:), Y(:)];
对ndgrid
的调用将生成两个矩阵X
和Y
,它们将具有您想要的网格结构,以及值X(i,j)
和{{1}相互对应。因此,要获得点Y(i,j)
,您只需要将这些数组重新整形为列向量并将它们连接起来。
答案 1 :(得分:1)
如果你有神经网络工具箱,你正在寻找combvec函数,它创建了2个向量的所有组合。
示例:
v1=[1 2]
v2=[3 4]
V = combvec(v1,v2)
输出:
V =
1 2 1 2
3 3 4 4