[英]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
将生成两个矩阵X
和Y
,它们将具有所需的网格结构,并且值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.