繁体   English   中英

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

[英]Generating all points of grid from given vectors of vertical and horizontal coordinates - MATLAB

我有一个10 x 10点的正方形网格。 v1是水平坐标的向量,而v2是包含垂直坐标的向量。 从这两个向量,我想构造所有100个点。 这是一个2 x 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中完成?

您将要使用meshgrid或更好的方法: ndgrid 这两个函数的概念是相同的,但是ndgrid更通用,并且对输出进行排序通常更有用。

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

调用ndgrid将生成两个矩阵XY ,它们将具有所需的网格结构,并且值X(i,j)Y(i,j)对应。 因此,要获得点P ,只需要将这些数组重塑为列向量并将它们连接起来。

如果您有神经网络工具箱,那么您正在寻找combvec函数,该函数从2个向量创建所有组合。

例:

v1=[1 2] 

v2=[3 4]

V = combvec(v1,v2)

输出:

V =

     1     2     1     2
     3     3     4     4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM