3

matlab とnewffコマンドを使用してニューラル ネットワークを構成しようとしています。

その後、viewコマンドを使用して、作成した構成を視覚化しようとしています。

x = view(net);

.png表示されているウィンドウをファイルに保存するにはどうすればよいですか? で試してみましsaveas(x, 'figure.png', 'png')たが、うまくいきませんか?コードからそれを行う方法を知っていますか?

4

3 に答える 3

8

作成されたウィンドウは純粋な Java Figure です (MATLAB Handle Graphics ではありません)。これをキャプチャしてみてください:

%# neural net, and view it
net = feedforwardnet(5);
jframe = view(net);

%# create it in a MATLAB figure
hFig = figure('Menubar','none', 'Position',[100 100 565 166]);
jpanel = get(jframe,'ContentPane');
[~,h] = javacomponent(jpanel);
set(h, 'units','normalized', 'position',[0 0 1 1])

%# close java window
jframe.setVisible(false);
jframe.dispose();

%# print to file
set(hFig, 'PaperPositionMode', 'auto')
saveas(hFig, 'out.png')

%# close figure
close(hFig)
于 2013-04-23T08:54:35.447 に答える
0

特にニューラル ネットワーク ツールボックス (nntraintool) で生成されたプロットを保存しようとすると、同じ問題が発生します。切り取りツールを使用して、これらのプロットをキャプチャします。ただし、次のものを使用してみてください。

スナップショットに必要な gfx オブジェクト (そのハンドル) を特定します。それは識別可能なプロパティから来ます。次に、印刷オプションを使用してファイルに保存できます。ファイル名、タイプを記述する必要があります。詳細については、このリンクにアクセスしてください ( http://www.mathworks.com/help/matlab/ref/print.html )。

たとえば、「performance.fig」というタグを付けて Figure を保存する場合は、次のようにします。

h = findobj('Type', 'figure', 'tag', 'performance.fig');

    for k = 1:numel(h)

    print(h(k), sprintf('Pic%d.ps',k));

    end;

これが役立つかどうか教えてください。必要に応じてコードを変更する必要があります。また、このスタックオーバーフロー フォーラムで別の人からこのヘルプを得ました。

于 2013-04-23T07:55:27.027 に答える