Open figure in editor instead of in new window

hello,
I've a creatfit function and I want to add the relative figure in editor , instead of launching a new window.
how fix it? tks

2 Comments

What is a "creatfit function"? What is a "relative figure"? How can a figure be opened in which editor?
Are you asking how to open a figure in docked mode?

Sign in to comment.

Answers (1)

DGM
DGM on 1 Mar 2023
Edited: DGM on 1 Mar 2023
If you're asking how to programmatically dock the figure, you can set its 'windowstyle' property.
In order to create a new empty figure, you can do this.
% create an empty docked figure
figure('windowstyle','docked')
At which point, you could plot in it as usual.
You could also set the property of a figure after the fact.
% just put something in a figure
inpict = imread('cameraman.tif');
imshow(inpict)
% dock the figure
set(gcf,'windowstyle','docked') % or use a specific fig handle

3 Comments

yes indeed I meant docked mode. "creatfit" is a function created by Matlab with "export script" from curve fitting app. so when i launch creafit(namefile) it opens a window with a plot.
I tried both with creatfit(namefile);figure('windowstyle','docked')
but it keeps popping out a window, which with creatfit(namefile);set(gcf,'windowstyle','docked')
but the window appears and disappears right after. what is the solution? Thank you
The exported script creates a new figure, so it won't use any figures created before or afterward. Unless you modify the script, you'll have to set the properties of the new figure after the script creates it.
It works for me when I either do
[fr gof] = createFit(x,y)
set(gcf,'windowstyle','docked')
or alternatively, if I modify the script:
% ...
% Plot fit with data.
figure( 'Name', 'untitled fit 1' , 'windowstyle','docked');
% ...
I think what might be happening is that there is no expected location for the docked figure. You might try docking an empty figure first so that MATLAB knows where you want the docked figure to go.
That said, I'm using R2019b, and lots of things have changed since.
this is the function. I've tried both way but doesn't work. it still launch a popup window
function [fitresult, gof] = createFit1(close)
%CREATEFIT1(RESPONSE)
% Create a fit.
%
% Data for 'untitled fit 1' fit:
% Y Output: response from tbl
% Output:
% fitresult : a fit object representing the fit.
% gof : structure with goodness-of fit info.
%
% See also FIT, CFIT, SFIT.
% Auto-generated by MATLAB on 02-Mar-2023 08:28:02
%% Fit: 'untitled fit 1'.
[xData, yData] = prepareCurveData( [], response );
% Set up fittype and options.
ft = fittype( 'poly3' );
opts = fitoptions( 'Method', 'LinearLeastSquares' );
opts.Normalize = 'on';
opts.Robust = 'Bisquare';
% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, opts );
set(gcf,'windowstyle','docked') %first try (doesn't work)
% Plot fit with data.
figure( 'Name', 'untitled fit 1' , 'windowstyle','docked'); %second try (doesn't work)
h = plot( fitresult, xData, yData, 'predobs' );
legend( h, 'close', 'untitled fit 1', 'Lower bounds (untitled fit 1)', 'Upper bounds (untitled fit 1)', 'Location', 'NorthEast', 'Interpreter', 'none' );
% Label axes
ylabel( 'response', 'Interpreter', 'none' );
grid on

Sign in to comment.

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Asked:

on 1 Mar 2023

Edited:

on 2 Mar 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!