使用适当的空行将矩阵格式化为txt文件

时间:2012-12-04 23:47:20

标签: matlab matrix

我正在使用三角测量程序,我需要绘制数据点及其三角测量(从另一个程序获得)。所以我的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行来引入空白行。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

简单的答案是放i = i+2;

但实际上,我认为你应该这样做

newgrid1__ASCIIeDT(1:3:end,:)=newgrid1__eDT(1:2:end,:);
newgrid1__ASCIIeDT(2:3:end,:)=newgrid1__eDT(2:2:end,:);

要使其正常工作,必须将newgrid1__ASCIIeDT初始化为适当的大小。请注意,newgrid1__EDT每两行有3行。