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

Variabeln für verschiedene Funktionen zur Verfügung stelle

 

JP2020
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 18.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2020, 10:45     Titel: Variabeln für verschiedene Funktionen zur Verfügung stelle
  Antworten mit Zitat      
Hallo zusammen,

ich habe ein Problem, dass glaube ich ganz einfach zu lösen ist aber ich kriege es nicht hin ...

Ich arbeite mit dem App Designer und habe folgenden Code:

Code:

        % Button pushed function: UPLOADButton
        function UPLOADButtonPushed(app, event)
        %  uploading of c3d files (if Labor Data) and json files (if Openpose Data)

        l_f = get(app.SwitchLaborField, 'Value');
 
        switch l_f
        case '1'        % -->c3d
            filetype                    = '.c3d';
            names                       = uigetfile('*.*');
           
            % store data in the app
            setappdata(f,'names',names);  
           
        case '2'        % -->Openpose
            d                           = uigetdir('','Auswahl Datenordner');
           
            % store data in the app
            setappdata(f,'d',d);            

        end
           
        end

        % Button pushed function: STARTButton
        function STARTButtonPushed(app, event)
       
        % get stored data from the app
        getappdata(f,'names',names);
        getappdata(f,'d',d);
       
        % get information of the interface
        l_f     = get(app.SwitchLaborField, 'Value');
        dim     = get(app.Switch2D3D,'Value');
        Dat_L   = get(app.eDataset_Labor,'Value');
        Dat_F   = get(app.eDataset_Field,'Value');
       
        %% get the right IMPORTER
        switch l_f
            case '1' % Labor
                        switch Dat_L  
                            case 1 % Spanier
                                [h, points, freq, metadat] = Import_Spanier(names);    
                            case 2 % DSHS
                                [h, points, freq, metadat] = Import_DSHS(names);
                        end
            % store data in the app
            setappdata(f,'h',h);
            setappdata(f,'points',points);
            setappdata(f,'freq',freq);
            setappdata(f,'metadat',metadat);                        
                             
            case '2' % Field
                switch dim
                    case '1' % 2D
                        switch Dat_F
                            case 1 % COCO
                                [points, freq, metadat] = Import_COCO_2D (d);
                            case 2 % BODY_25 --> noch nicht vorhanden
                              % [points, freq, metadat] = Import_BODY25_2D (d);
                        end
                    case '2' % 3D
                        switch Dat_F
                            case 1 % COCO --> noch nicht vorhanden
                              % [points, freq, metadat] = Import_COCO_3D (d);
                            case 2 % BODY_25 --> noch nicht vorhanden
                              % [points, freq, metadat] = Import_BODY25_3D(d);
                        end
                end
            % store data in the app
            setappdata(f,'points',points);
            setappdata(f,'freq',freq);
            setappdata(f,'metadat',metadat);    
           
            end


problem ist, dass keine in 'f' gespeichert werden... also
Code:

            % store data in the app
            setappdata(f,'d',d);    


speichert scheinbar nichts in f, somit kriege ich immer eine Fehlermeldung im folgenden, dass 'd' & 'names' nicht vorhanden ist...

was für einen Fehler mache bzw. ich kann ich das Problem lösen?

Beste Grüße!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.484
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.07.2020, 11:16     Titel:
  Antworten mit Zitat      
Hallo,

in App Designer würde ich nicht setappdata und getappdata verwenden, sondern eigene Properties anlegen. Darauf kannst du direkt mit app.property lesend und schreibend zugreifen.

Wenn du bei setappdata und getappdata bleiben möchtest, musst du dir von getappdata was zurückgeben lassen, z.B.
Code:
names = getappdata(f,'names');
d = getappdata(f,'d');


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
 
JP2020
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 18.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2020, 12:57     Titel:
  Antworten mit Zitat      
danke Harald für die schnelle Hilfe, jedoch hänge ich jetzt an einer anderen Stelle...

ich habe es nochmal versucht mit set & getappdata zu machen.
Dafür habe ich eine globale Variable in die ich alle anderen Variabeln speichern möchte. Alle Variabeln puplic zu machen, wird glaube ich ein großes Choas...

erstmal zu meinem Problem:

Code:

 properties (Access = private)
          dat          
 end

 % Button pushed function: UPLOADButton
 function UPLOADButtonPushed(app, event)
 %  uploading of c3d files (if Labor Data) and json files (if Openpose Data)

 l_f = get(app.SwitchLaborField, 'Value');

 switch l_f
        case '1'        % -->c3d
            filetype                    = '.c3d';
            names                       = uigetfile('*.*');
           
            % store data in the app
            setappdata(app.dat,'names',names);  
           
        case '2'        % -->Openpose
            d                           = uigetdir('','Auswahl Datenordner');
           
            % store data in the app
            setappdata(app.dat,'d',d);            

 end
   
 end

       
% Button pushed function: STARTButto
function STARTButtonPushed(app, event)
       
% get stored data from the app
names   = getappdata(app.dat,'names');
d          = getappdata(app.dat,'d');
       
% get information of the interface
l_f     = get(app.SwitchLaborField, 'Value');
dim     = get(app.Switch2D3D,'Value');
Dat_L   = get(app.eDataset_Labor,'Value');
Dat_F   = get(app.eDataset_Field,'Value');

 


ich bekomme immer folgende Fehlermeldung:

Code:

Error using setappdata Value must be a handle.


bzw.
Code:
Error using setappdata
Value must be a handle.

Error in MA_Tool/UPLOADButtonPushed (line 127)
            setappdata(app.dat,'names',names);
 
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 335)
Error while evaluating Button PrivateButtonPushedFcn.


Wenn du sagst, du würdest es mit
Code:
app.property
machen, könntest du mir das näher erklären bin neu beim erstellen von GUIS Crying or Very sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

bei setappdata/getappdata müsstest du statt app.dat die Figure der App verwenden, standardmäßig app.UIFigure.


app.dat geht aber in die richtige Richtung, muss nur anders verwendet werden. Ich würde für jede Information ein eigenes Property erstellen, also:

Code:
properties (Access = private)
          names
          d
 end


Setzen:
Code:
app.names = names;


Späteres Abfragen:
Code:
names = app.names;

und entsprechend für d.

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
 
JP2020
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 18.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2020, 13:56     Titel:
  Antworten mit Zitat      
danke Harald, ich glaube deine zweite Version mit dem app.names und app.d werde ich nutzen. Probiere ich morgen mal aus Smile danke für die schnelle hilfe!
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.