【发布时间】:2017-08-06 14:50:52
【问题描述】:
我想创建一个可以在每次循环时存储输出的数组。我认为问题在于,在每次新迭代中,数字都从头开始计数,因此它只存储最后一次迭代!在每次迭代中,输出都是array(7x3),所以总的来说我必须有(28,3)。但是我尝试了很多,我得到了一个ARRAY (28,3),除了最后7行之外,所有的都是零。
非常感谢
你可以看到下面的代码:
for t=1:ncell % in my case I have 4 cells
ti=sort(T,2)
tt= sort(Cell{t}.ExBot,2)
tq= sort(Cell{t}.ExTop,2)
te= sort(Cell{t}.ExBT,2)
%k=0
z=0
cc=[]
%%%%% for exbottom
I=ones(size(ti,1),1);
for j=1:size(tt,1)
for i=1:size(ti,1)
if tt(j,:)==ti(i,:)
k=k+1 ;
%c(k,:)=[ti(j,:), ti(j+1,:)]
I(i)=0;
cc(k,:)=Y(i,:);
cc(size(tt,1)+1,:)=cc(1,:)
else
end
end
end
end
【问题讨论】:
-
循环结束时
k的值是多少? -
如果您想获得可验证的答案,请发布缺少的变量,例如
T和Cell。确保您发布的代码是可执行的。 -
调试代码,在“if ..”处添加断点
-
k值只是先写输出的第一行的值……每次都在变化! T也是我的网格的三角剖分。所以 cc 是每个单元格周围的位置,它是一个数组(7x3)。在我的情况下,我有四个单元格,所以我想要一个通用数组,它将包含每个单元格周围的所有位置,这意味着一个数组(28, 3).. 没有可变单元格,但 ncell 等于 4(这意味着 4 个单元格)
标签: arrays matlab output store