我正在使用三角测量程序,我需要绘制数据点及其三角测量(从另一个程序获得)。所以我有我的 delauany 边缘矩阵newgrid1_eDT(e 表示边缘列表)作为(第一列是行号):
1 0 0 9
2 0 1 9
3 0 1 9
4 0 1 8
5 0 1 8
[...]
11716 5 6 8
11717 1 2 4
11718 0 2 4
我们的想法是让它像这样 newgrid1_ASCIIeDT:
1 0 0 9
2 0 1 9
3
4 0 1 9
5 0 1 8
6
7 0 1 8
[...]
11715 5 6 8
11716
11717 1 2 4
11718 0 2 4
基本上,每 2 行代表一个 3d 坐标对(每对点代表一条线)。
我编写了以下内容,试图从newgrid1_eDT连续复制两行(索引 i),然后将空行复制到newgrid1_ASCIIeDT(索引j),从而循环遍历 empy 矩阵newgrid1_ASCIIeDT逐渐填充它。我在接收矩阵newgrid1 _ASCIIeDT中分配了 11718+ 11718/3 =15624 行;我们从newgrid1__eDT 转移的每个点一个,每 2 行后加上一个空的 mrow(在第 3、6、9 行,...,依此类推):
newgrid1__ASCIIeDT=zeros(15624,3);
[m,l]=size(newgrid1__ASCIIeDT) ;
j=0;
i=1;
for j = 1:3:15624
i
newgrid1__ASCIIeDT(j,:)=newgrid1__eDT(i,:);
newgrid1__ASCIIeDT(j+1,:)=newgrid1__eDT(i+1,:);
newgrid1__ASCIIeDT(j+2,:)=blank;
i=i+1
end
出于某种原因,我相信这应该可以解决问题,但不知何故我得到了奇怪的结果。还有其他(更简单的方法)可以做到这一点,还是我在重新发明轮子?
理想情况下,我会用 C 语言编写这个(所有其他事情都在发生),但我现在只需要一个快速修复,并且不能通过 11k 行来引入空白行。请问有什么帮助吗?