从给定的垂直和水平坐标向量生成网格的所有点 - MATLAB

时间:2015-01-21 18:53:11

标签: matlab matrix

我的方格为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中完成?

2 个答案:

答案 0 :(得分:3)

您需要使用meshgrid甚至更好:ndgrid。两个函数的概念是相同的,但ndgrid更通用,并且输出的排序通常更有用。

x = [1,2];
y = [3,4];
[X, Y] = ndgrid(x, y);
P = [X(:), Y(:)];

ndgrid的调用将生成两个矩阵XY,它们将具有您想要的网格结构,以及值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