Matlab,将输出保存在数组中,循环
Matlab, save output in array , loop
我想创建一个数组来存储每次执行循环时的输出。我认为问题是因为在每次新的迭代中,数字从头开始计数,所以它只存储最后一次迭代!在每次迭代中,输出是一个 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
尽管评论中提到的更多信息会有所帮助,但根据您提供的信息,问题最有可能是在您开始处理每个单元格时将 cc 设置为空。
cc=[];
退出最外层循环时,您将只有最后一次迭代的结果。
在相关说明中,您可能希望使用 isequal
或 all
来比较向量,即 if isequal(tt(j,:),ti(i,:))
我想创建一个数组来存储每次执行循环时的输出。我认为问题是因为在每次新的迭代中,数字从头开始计数,所以它只存储最后一次迭代!在每次迭代中,输出是一个 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
尽管评论中提到的更多信息会有所帮助,但根据您提供的信息,问题最有可能是在您开始处理每个单元格时将 cc 设置为空。
cc=[];
退出最外层循环时,您将只有最后一次迭代的结果。
在相关说明中,您可能希望使用 isequal
或 all
来比较向量,即 if isequal(tt(j,:),ti(i,:))