Skip to content
This repository was archived by the owner on Nov 25, 2018. It is now read-only.
This repository was archived by the owner on Nov 25, 2018. It is now read-only.

Maybe I'm missing something? Conversion issue #9

@ksingh49

Description

@ksingh49

Hey,

Please excuse me if this has a really easy solution but I'm farily new to matlab and coding in general.

So I've been using mlapp2classdef to convert a simple app I made in App Designer just to test if I can end up with a final standalone file that works. The sample is just an axes with a push button that plots cos(x) after it is pushed. After I run the conversion, mlapp2classdef([], 'ReplaceAppUI, true) I get an error saying:

While setting property 'UIAxes' of class 'testclick': Value must be 'matlab.ui.control.UIAxes'. Error in testclick/createComponents (line 39) app.UIAxes = axes(app.UIFigure); Error in testclick (line 79) createComponents(app)

My file name is "testclick". Here is the code that the conversion generates from my sample.

classdef testclick < matlab.apps.AppBase

    % Properties that correspond to app components
    properties (Access = public)
        UIFigure@matlab.ui.Figure
        UIAxes@matlab.ui.control.UIAxes
        Plot@matlab.ui.control.Button
        XEditFieldLabel@matlab.ui.control.Label
        XEditField@matlab.ui.control.NumericEditField
        YEditFieldLabel@matlab.ui.control.Label
        YEditField@matlab.ui.control.NumericEditField
    end

    methods (Access = private)

        % Button pushed function: Plot
        function PlotPushed(app, event)
            x=0:.01:100;
            y=cos(x);
            plot(app.UIAxes,x,y);
            app.XEditField.Value=10;
            app.YEditField.Value=100;
        end
    end

    % App initialization and construction
    methods (Access = private)

        % Create UIFigure and components
        function createComponents(app)

            % Create UIFigure
            app.UIFigure = figure;
            app.UIFigure.Position = [100 100 634 308];
            app.UIFigure.Name = 'UI Figure';
            setAutoResize(app, app.UIFigure, true)

            % Create UIAxes
            app.UIAxes = axes(app.UIFigure);
            title(app.UIAxes, 'Title');
            xlabel(app.UIAxes, 'X');
            ylabel(app.UIAxes, 'Y');
            app.UIAxes.Position = [259 80 300 185];

            % Create Plot
            app.Plot = uicontrol('Parent', app.UIFigure, 'push', 'Style', 'pushbutton');
            app.Plot.ButtonPushedFcn = createCallbackFcn(app, @PlotPushed, true);
            app.Plot.Position = [96 216 100 22];
            app.Plot.Text = 'Plot';

            % Create XEditFieldLabel
            app.XEditFieldLabel = uicontrol('Parent', app.UIFigure, 'Style', 'text');
            app.XEditFieldLabel.HorizontalAlignment = 'right';
            app.XEditFieldLabel.Position = [56 165 25 15];
            app.XEditFieldLabel.Text = 'X';

            % Create XEditField
            app.XEditField = uicontrol('Parent', app.UIFigure, 'numeric', 'Style', 'edit');
            app.XEditField.Position = [96 161 100 22];

            % Create YEditFieldLabel
            app.YEditFieldLabel = uicontrol('Parent', app.UIFigure, 'Style', 'text');
            app.YEditFieldLabel.HorizontalAlignment = 'right';
            app.YEditFieldLabel.Position = [57 118 25 15];
            app.YEditFieldLabel.Text = 'Y';

            % Create YEditField
            app.YEditField = uicontrol('Parent', app.UIFigure, 'numeric', 'Style', 'edit');
            app.YEditField.Position = [97 114 100 22];
        end
    end

    methods (Access = public)

        % Construct app
        function app = testclick()

            % Create and configure components
            createComponents(app)

            % Register the app with App Designer
            % Function call removed

            if nargout == 0
                clear app
            end
        end

        % Code that executes before app deletion
        function delete(app)

            % Delete UIFigure when app is deleted
            delete(app.UIFigure)
        end
    end
end

And lastly here is the code converted just with mlapp2classdef([])

classdef testclick < matlab.apps.AppBase

    % Properties that correspond to app components
    properties (Access = public)
        UIFigure         matlab.ui.Figure
        UIAxes           matlab.ui.control.UIAxes
        Plot             matlab.ui.control.Button
        XEditFieldLabel  matlab.ui.control.Label
        XEditField       matlab.ui.control.NumericEditField
        YEditFieldLabel  matlab.ui.control.Label
        YEditField       matlab.ui.control.NumericEditField
    end

    methods (Access = private)

        % Button pushed function: Plot
        function PlotPushed(app, event)
            x=0:.01:100;
            y=cos(x);
            plot(app.UIAxes,x,y);
            app.XEditField.Value=10;
            app.YEditField.Value=100;
        end
    end

    % App initialization and construction
    methods (Access = private)

        % Create UIFigure and components
        function createComponents(app)

            % Create UIFigure
            app.UIFigure = uifigure;
            app.UIFigure.Position = [100 100 634 308];
            app.UIFigure.Name = 'UI Figure';
            setAutoResize(app, app.UIFigure, true)

            % Create UIAxes
            app.UIAxes = uiaxes(app.UIFigure);
            title(app.UIAxes, 'Title');
            xlabel(app.UIAxes, 'X');
            ylabel(app.UIAxes, 'Y');
            app.UIAxes.Position = [259 80 300 185];

            % Create Plot
            app.Plot = uibutton(app.UIFigure, 'push');
            app.Plot.ButtonPushedFcn = createCallbackFcn(app, @PlotPushed, true);
            app.Plot.Position = [96 216 100 22];
            app.Plot.Text = 'Plot';

            % Create XEditFieldLabel
            app.XEditFieldLabel = uilabel(app.UIFigure);
            app.XEditFieldLabel.HorizontalAlignment = 'right';
            app.XEditFieldLabel.Position = [56 165 25 15];
            app.XEditFieldLabel.Text = 'X';

            % Create XEditField
            app.XEditField = uieditfield(app.UIFigure, 'numeric');
            app.XEditField.Position = [96 161 100 22];

            % Create YEditFieldLabel
            app.YEditFieldLabel = uilabel(app.UIFigure);
            app.YEditFieldLabel.HorizontalAlignment = 'right';
            app.YEditFieldLabel.Position = [57 118 25 15];
            app.YEditFieldLabel.Text = 'Y';

            % Create YEditField
            app.YEditField = uieditfield(app.UIFigure, 'numeric');
            app.YEditField.Position = [97 114 100 22];
        end
    end

    methods (Access = public)

        % Construct app
        function app = testclick()

            % Create and configure components
            createComponents(app)

            % Register the app with App Designer
            registerApp(app, app.UIFigure)

            if nargout == 0
                clear app
            end
        end

        % Code that executes before app deletion
        function delete(app)

            % Delete UIFigure when app is deleted
            delete(app.UIFigure)
        end
    end
end

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions