0

私はmatlab GAとプロットオプション「gaplotrange」を使用しています。しかし、ターミナルを介してLinuxサーバーでmatlabを実行しています。そのため、ギャップロットを保存しようとすると、空の画像 (saveas を使用した場合) が表示され続けるか、エラー (print を使用した場合、現在のプラットフォームではサポートされていないというメッセージが表示されます) が表示されます。

プロットを非表示モードで保存できる他の方法はありますか?

これが私のコードの一部です

opts = gaoptimset('PopulationSize', 256, 'EliteCount',1,'CrossoverFraction',0.8, ...
 'Generation', 3, 'PenaltyFactor',80,'SelectionFcn',{@selectiontournament,4}, ...
 'CrossoverFcn', @crossoverscattered ,'Vectorized','off', 'UseParallel','always',...
 'OutputFcns',@pop_output,'MutationFcn',{@mutationuniform,0.002},'StallGenLimit',3,...
 'TolFun', 1e-4,'PlotFcns',@gaplotbestf);

f = figure('vis','off');

[x,fval, exitflag, output, population, scores] = ga(@plate_fitness,16,[],[],[],[],vlb,vub,[],opts);

hgsave(f,'matlabga_range','png');
4

1 に答える 1

0

Matlabには、ここに投稿されたこれに対する解決策があります

hgsave('filename')
hgsave(h,'filename')

遺伝的アルゴリズム ツールボックスの経験はあまりありませんが、ドキュメントをざっと見ると、これが示されます。

コマンド ラインから ga を呼び出すときにプロットを表示するには、オプションの PlotFcns フィールドをプロット関数の関数ハンドルに設定します。たとえば、最適なフィットネス プロットを表示するには、次のようにオプションを設定します。

options = gaoptimset('PlotFcns', @gaplotbestf);

したがって'PlotFcns'、プロット関数へのハンドルを渡さない場合、コマンド ラインの操作に基づいてプロットが生成されないように見えます。それを追加して、問題が解決するかどうかを確認してください。詳細はこちら

アップデート:

問題は、 ga メソッドのプロットが独自の図を作成していたため、 に保存する必要があったことが判明しましたgcf。詳細については、以下の説明を参照してください。

于 2012-08-26T14:23:44.607 に答える