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

Posted

技术标签:

【中文标题】如何将每次迭代的输出保存到结构中【英文标题】:How can I save the outputs of every iteration into structure 【发布时间】:2015-01-30 09:26:39 【问题描述】:

我有一个问题。 我写了一个脚本,它的输出是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】:

试试这个:

% 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

希望这会有所帮助。

【讨论】:

以上是关于如何将每次迭代的输出保存到结构中的主要内容,如果未能解决你的问题,请参考以下文章

GridSearchCV - 每次迭代保存结果

如何保存 numpy 数组以便以后可以适当地加载它们?

每次迭代后保存spacy的NER模型

如何在循环中的每次迭代中保存具有不同名称的文件? MATLAB

如何在循环的每次迭代中将新图形保存为 png

将数据变量从 matlab 保存到 csv 或文本文件