0

私は次のように関数を呼び出しています:

beta=NaN(size(rates,1),6);

mats=[1:50];

mats2=[2 5 10 30];

for i=1:2
y2=rates(i,mats2);
yM=rates(i,:);

dataList=struct('yM',yM,'mats',mats,'model',@NSS,'mats2',mats2,'y2',y2);

de=struct('min',[0;3.5],'max',[3.5;30],'d',2,'nP',200,'nG',600,'ww',0.1,'F',0.5,'CR',0.99,'R',0,'oneElementfromPm',1);


beta(i,:)=DElambdaVec(de,dataList,@OF);
end

ただし、DElabdavec からの出力はセル配列です。

output.Fbest=Fbest; output.xbest=xbest; output.Fbv=Fbv;

for ループの各パスにこれらの各項目を格納するにはどうすればよいですか?

4

1 に答える 1

1

結果を cell 配列 (この場合は beta) に保存できます。

beta{i} = DElambdaVec(de,dataList,@OF);

のすべての要素はbeta、 によって返されるオブジェクトになりましたDElambdaVec。例:

beta{1}

ans = 

Fbest: 'Fbest'
xbest: 'xbest'
  Fbv: 'Fbv'

ここでは、値の例を使用してエントリを作成しました。

beta=[]ループの前に初期化する必要があることに注意してください。

于 2012-10-17T15:44:03.393 に答える