如何将每次迭代的输出保存到结构中

时间:2015-01-30 09:26:40

标签: matlab

我有一个问题。 我写了一个脚本,它的输出是B,一个数字C,一个大小为3,3,3的矩阵。

我必须在100次迭代中使用随机输入运行此脚本。每次迭代的输出都是BC。我希望在每次迭代结束时将这些输出保存在名为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 个答案:

答案 0 :(得分:2)

试试这个:

% 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

希望这有帮助。