WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Madlab iseqaul edit field

 

Matlab Noob
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 28.10.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.11.2021, 14:17     Titel: Madlab iseqaul edit field
  Antworten mit Zitat      
Hallo,

ich versuche mit if isequal etwas in app designer zu machen. Und zwar: ich will eine Tabelle Plotten aber wenn in einem Edit field nichts steht soll eine msgbox kommen und sagen dass ich da was reinschreibe und ansonsten geht der plot nicht.

Code:
global t b titlename xaxis yaxis;

title(titlename)
xlabel(xaxis)
ylabel(yaxis)

if isequal(xaxis,0)
msgbox('sdhuf')

elseif isequal(yaxis,0)
msgbox('sdgf')

elseif isequal(titlename,0)
msgbox(' adjfasjn')

else
O=t(:,1:b)
plot(O);
end
Funktion ohne Link?


dankeschönSmile

Hello,

I am trying to do something in app designer with if isequal. Namely: I want to plot a table but if there is nothing in an edit field a msgbox should come and say that I write something in there and otherwise the plot doesn't work.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.458
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.11.2021, 15:14     Titel:
  Antworten mit Zitat      
Hallo,

und was ist nun das Problem an deinem Ansatz? Ausprobieren kann man es mangels Daten ja leider nicht.

Vermutung: es ist nicht sinnvoll, auf Gleichheit mit 0 zu testen. Vermutlich steht in x-axis '' oder "", wenn nichts eingegeben wurde. Was in dem Fall drin stehst, kannst du im Zweifelsfall mit dem Debugger herausfinden.

Globale Variablen sind bei App Designer wie eben im anderen Beitrag geschrieben nicht nötig.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlab Noob
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 28.10.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.11.2021, 15:34     Titel:
  Antworten mit Zitat      
danke für die Antwort aber ich kann daraus nichts schließen.

ich will dass eine msgbox kommt sobald in einer textbox nixhts steht, dass man diese erst noch ausfüllen muss. und solan gnicht alle ausgefüllt sind, funktioniert der plot nicht.

kannst mir da sagen wie ich das umschrieben muss oder mit was das geht?

merci
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.458
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.11.2021, 15:44     Titel:
  Antworten mit Zitat      
Hallo,

bitte Rückfragen beantworten.
Zitat:
was ist nun das Problem an deinem Ansatz? Ausprobieren kann man es mangels Daten ja leider nicht.


Ich habe dir ja auch einen Vorschlag für das vermutete Problem geschickt. Konkret z.B.
Code:


Es ist durchaus möglich, dass dein Problem ein anderes ist. Dann müsstest du mir aber sagen, was das Problem bei dem Code ist.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlab Noob
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 28.10.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.11.2021, 17:09     Titel:
  Antworten mit Zitat      
meine antwort hat es vorhin nicht geschickt:(

bezüglich Rückfrage:

das problem an meinem ansatz ist, dass ich trotzdem den plot durchführen kann. es ist dann einfach nur nicht die y achso z.b. beschriftet.

bezüglich vorschlag:

mit dem vorschlag geht es leider auch nicht.

Code:
    [file, path] = uigetfile('*.xlsx','Select your Excel file','C:\');
           
           
             if isequal(file,0)
                 msgbox('Please input an Excel file')
             
                   
               
               
            else
                 [status,sheets]=xlsfinfo([path file]);
               selectedsheet=listdlg('ListString',sheets);
               
               msgbox('choose title, x and y axis')
               
                global t
                t = xlsread(fullfile(path, file),selectedsheet);
                app.UITable.Data = t;
                % Set column names as a pull down menu
                %app.xDropDown.Items = t.Properties.VariableNames;
                %app.yDropDown.Items = t.Properties.VariableNames;
               
                %plot(app.UIAxes, app.UITable.Data.(app.xDropDown.Value), app.UITable.Data.(app.yDropDown.Value));
            end
           
        end

        % Callback function
        function xDropDownValueChanged(app, event)
            value = app.xDropDown.Value;
           
            plot(app.UIAxes, app.UITable.Data.(app.xDropDown.Value), app.UITable.Data.(app.yDropDown.Value));
        end

        % Callback function
        function yDropDownValueChanged(app, event)
            value = app.yDropDown.Value;
           
            plot(app.UIAxes, app.UITable.Data.(app.xDropDown.Value), app.UITable.Data.(app.yDropDown.Value));
        end

        % Button pushed function: PlotButton
        function PlotButtonPushed(app, event)
        global t b titlename xaxis yaxis x1 x2 n;
           
                if isequal(xaxis,'')
                msgbox('sdhuf');
               
            elseif isequal(yaxis,'')
                msgbox('sdgf')
               
            elseif isequal(titlename,'')
                msgbox('adjfasjn')
           
            else
           
            O=t(:,1:b)
           
            sizeO = size(O);
            n = sizeO(1,1);
           
            x = linspace(x1, x2, n);
           
           
            plot(x, O);
           
            title(titlename)
            xlabel(xaxis)
            ylabel(yaxis)
           
            legend
           
                end
               
           

        end

        % Value changed function: xaxisnameTextArea
        function xaxisnameTextAreaValueChanged(app, event)
           global xaxis
            xaxis = app.xaxisnameTextArea.Value;
         
        end

        % Value changed function: yaxisnameTextArea
        function yaxisnameTextAreaValueChanged(app, event)
            global yaxis
            yaxis= app.yaxisnameTextArea.Value;
           
        end

        % Value changed function: titlenameTextArea
        function titlenameTextAreaValueChanged(app, event)
            global titlename
            titlename = app.titlenameTextArea.Value;
           
        end

        % Cell selection callback: UITable
        function UITableCellSelection(app, event)
            global indices
            indices = event.Indices
           
        end

        % Value changed function: columnEditField
        function columnEditFieldValueChanged(app, event)
            global b
            b = app.columnEditField.Value;
           
        end

        % Value changed function: startsatEditField
        function startsatEditFieldValueChanged(app, event)
            global x1
            x1 = app.startsatEditField.Value;
           
        end

        % Value changed function: endsatEditField
        function endsatEditFieldValueChanged(app, event)
            global x2
            x2 = app.endsatEditField.Value;
           
        end

        % Callback function
        function pointsEditFieldValueChanged(app, event)
            global n
            n = app.pointsEditField.Value;
           
        end

        % Value changed function: TextArea
        function TextAreaValueChanged(app, event)
            value = app.TextArea.Value;


nun muss ich noch eine Legende hinzufügen. wie das geht weiß ich aber ich weiß nicht wie man dann einzelnt die Linien beschriften kann... steht immer nur line 1 und so weiter. da ne idee?

gracie
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.458
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.11.2021, 18:27     Titel:
  Antworten mit Zitat      
Hallo,

du musst mit dem Wert vergleichen für den Fall, das nichts drin steht. Wie gesagt:
Zitat:
Was in dem Fall drin stehst, kannst du im Zweifelsfall mit dem Debugger herausfinden.

Generell ist der Debugger sehr hilfreich, um zu sehen, welche Code-Zeilen ausgeführt werden und warum.

Zur Frage bzgl. Legenden siehe das Beispiel "Included Subset of Graphics Objects in Legend" in der Doku von legend.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlab Noob
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 28.10.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2021, 09:54     Titel:
  Antworten mit Zitat      
habs geschafft besten dank!!

hab aber das problem, dass sich mein user interface an den letzten plot erinnert. dass heißt wenn ich das programm neu starte, dann funktionert es mit der Fehlermeldung. sobald ich es aber ein mal geplottet habe und dann nochmal runne, erinnert es sich an den letzten plot und auch wenn ich nichts eingebe und auch keine excel datei auswähle, plottet es einfach das von davor. also auch wenn ich nur eine sache weglasse übernimmt es die von dem plot davor...

weißt du wie ich das verhindern kann?

Arigatō
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.458
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.11.2021, 10:34     Titel:
  Antworten mit Zitat      
Hallo,

das müsste ich tatsächlich mal selbst anhand einer kompletten App nachvollziehen. Ich könnte mir sowas vorstellen:
eine Variable newSettings einführen, die
* auf true initialisiert wird
* nach Änderung der Einstellungen auf true gesetzt wird
* vor einem Plot mit true verglichen wird
* nach einem Plot auf false gesetzt wird

Letztlich kann ich nur wieder empfehlen, im Debugger zu sehen, welchen Pfad der Code durchläuft. An der Stelle, an der nicht der gewünschte Pfad durchlaufen wird, musst du dann die Abhilfe einbauen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.