簡體   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