MATLAB Answers

0

Live Editor and view neural network

Grzegorz Knor さんによって質問されました 2017 年 7 月 27 日
最新アクティビティ Baptiste Ottino さんによって コメントされました 2017 年 8 月 8 日
Hi,
I would like to add a neural network graphical diagram to my live script. Unfortunately command view produces new window instead of adding diagram to the live script.
To be clear, this code (in a Live Editor) attaches output of plot command directly to the live script, but does not include neural network diagram:
plot(1:10)
net = patternnet;
view(net)

  0 件のコメント

サインイン to comment.

1 件の回答

Answer by Baptiste Ottino on 8 Aug 2017
 Accepted Answer

You are experiencing this problem because the view(net) function does not output a figure, it outputs a Java object. I don't know a perfect work around, but you can try this:
function newView(net)
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();
I found this solution here. With this, you can have your network as a figure, and it will appear in the livescript. The only remaining issue is that the undocked figure window doesn't close once it has been plotted in the livescript, which is peculiar.

  2 件のコメント

Thank you for your answer. I've modified it a little bit, and now figure window can be closed automatically:
function outH = newView(net)
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, 'Parent', hFig, 'units','normalized', 'position',[0 0 1 1])
%# close java window
jframe.setVisible(false);
jframe.dispose();
% capture figure as a frame
F = getframe(hFig);
% close current figure
close(hFig)
% display the captured image data using imshow
hFig = figure('Menubar','none', 'Position',[100 100 565 166]);
axes('units','normalized', 'position',[0 0 1 1])
imshow(F.cdata)
axis off
% return handle if needed
if nargout == 1
outH = hFig;
end
Pretty cool, thank you very much!

サインイン to comment.



Translated by