我想在第三列中创建一个以矩阵(nx3)(此处为:obsPos)保存的网格。网格应均匀间隔。矩阵应由两个向量定义(dim:3x1)。
目标:创建x米长x米宽的网格,并将此网格的位置保存到矩阵中。该网格应均匀分布,例如: G。每个网格面板都是一平方米大。
干杯!
obsXlimit = 50; % Define size of the observer grid in x-direction (m)
obsYlimit = 20; % Define size of the observer grid in y-direction (m)
obsXspanVector = [obsXlimit 0];
obsYspanVector = [0 obsYlimit];
[obsX obsY] = meshgrid(obsXspanVector,obsYspanVector); % Generate X and Y data of the observer positions
obsZ = zeros(size(obsX, 1)); % Generate Z data of the observer positions (always with obsZ = 0)
obsPos = [obsX(:), obsY(:), obsZ(:)]; % Save every observer position
答案 0 :(得分:0)
您声明统一网格,这是使用start:step:stop
获得的start
,step
和stop
是网格开始的点,步长和分别结束的地方。看起来,你有网格
obsXspanVector = [obsXlimit 0];
obsYspanVector = [0 obsYlimit];
将使网格仅包含起点和终点。另外,由于一个方格必须是1平方米大,我认为步长应该是一个:
obsXspanVector = 0:1:obsXlimit;
obsYspanVector = 0:1:obsYlimit;
然后你可以用
为x和y生成网格[obsX obsY] = meshgrid(obsXspanVector,obsYspanVector);
然后为避免遗忘,将数组obsX
和obsY
重新定义为Nx1等效项。
obsX = obsX(:);
obsY = obsY(:);
然后你可以绘制所需的零,虽然注意到带有1个输入的zeros
形成一个方形矩阵,多个输入(可能是数组)给出一个指定大小的数组
obsZ = zeros(size(obsX)); %size(obsX) = [N, 1]
最后,你可以合并
obsPos = [obsX(:), obsY(:), obsZ(:)];