如何将每次迭代的输出保存到结构中
Posted
技术标签:
【中文标题】如何将每次迭代的输出保存到结构中【英文标题】:How can I save the outputs of every iteration into structure 【发布时间】:2015-01-30 09:26:39 【问题描述】:我有一个问题。
我写了一个脚本,它的输出是B
,一个数字和C
,一个大小为3,3,3
的矩阵。
我必须在 100 次迭代中使用随机输入运行此脚本。每次迭代的输出为B
和C
。我想在每次迭代结束时将这些输出保存在名为 ST 的结构中。
请问怎么办?如何创建在每次迭代结束时填充 B 和 C 的空结构?
谢谢。
我的代码:
a1=[1 0 1;0 1 1;0 0 0];
b1=[0 1 0;1 0 0;0 0 1];
c1=[0 0 0;0 0 0;1 1 0];
D=cat(3,a1,b1,c1);
A=zeros(3,3);
for i=1:3
for j=1:3
p1=0
p=0
idx=randperm(numel(A))
[m n]=ind2sub(size(A),idx(find((A(idx)==0),1,'first')))
s=find(D(m,n,:)==1)
for i=1:3
for j=1:3
for k=s
if D(i,j,k)~=1
p(i,j,k)=suit(i,j,k).^2
elseif D(i,j,k)==1
p(i,j,k)=0
end
end
end
end
w=sum(sum(sum(p)))
p1=p./w
p2=p1(:,:,k)
r=rand
c=reshape(p2,1,[])
c=cumsum(c)
j=find(r<=c,1,'first')
[j1 j2]=ind2sub(size(p2),j)
g=find(D(j1,j2,:)==1)
D(j1,j2,g)=0
D(m,n,g)=1
D(m,n,s)=0
D(j1,j2,s)=1
x=D
end
我想迭代这段代码。
【问题讨论】:
我将代码添加到我的问题中。我想迭代这段代码。谢谢 【参考方案1】:试试这个:
% Define an empty structure
ST = struct('B', , 'C', );
for i = 1:100
% Do your computation here
% Define the variables B and C
ST(i).B = B; % Store B and C in the ith element of the structure
ST(i).C = C;
end
希望这会有所帮助。
【讨论】:
以上是关于如何将每次迭代的输出保存到结构中的主要内容,如果未能解决你的问题,请参考以下文章