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

Programm-Variable in GUI laden und manipulieren

 

maze
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 73
Anmeldedatum: 05.04.11
Wohnort: Hamburg
Version: 7.11.0 R2010b
     Beitrag Verfasst am: 30.11.2011, 20:02     Titel: Programm-Variable in GUI laden und manipulieren
  Antworten mit Zitat      
Ich möchte in mein GUI (mit Guide gemacht) eine Variable aus einem externen Programm direkt laden, und diese Variable dann manipulieren. Ich komme nicht weiter.
Nach dem Motto

Code:

load (filename, var1)  % Variable var1 aus filename ins Gui laden
handles.var1 = a   % die Variable a global machen, um mit ihr arbeiten zu können.
 


und jetzt könnte ich die Variable a manipulieren. Das mit dem "load" ist Mist, ich weiss. Ich möchte einfach nur verdeutlichen, was ich ungefähr machen möchte.
Vielen lieben Dank schon im voraus!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.11.2011, 21:12     Titel:
  Antworten mit Zitat      
Hallo,

und wo genau liegt nun das Problem?

Ein erster Tipp wäre, dass du mit
Code:
guidata(hObject, handles)

die Handles-Struktur aktualisieren musst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
maze
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 73
Anmeldedatum: 05.04.11
Wohnort: Hamburg
Version: 7.11.0 R2010b
     Beitrag Verfasst am: 01.12.2011, 12:59     Titel:
  Antworten mit Zitat      
Ich bekomme die Variable aus dem externen Programm im GUI nicht extrahiert. Mein Programm heisst z.B. glaze. Darin ist die Anfangsgeschwindigkeit u0 initiiert. Dieses u0 will ich im GUI laden und anschließend manipulieren (um es danach wieder an das externe Programm zurückzugeben und mittels dem GUI dann mit der neuen Anfangsbedingung laufen zu lassen)
Ich schaffe es nicht, dass ich einfach das u0 erhalte. Das ist wahrscheinlich so billig, dass Du fragst, wo das Problem liegt. Aber ich finde nichts...
Private Nachricht senden Benutzer-Profile anzeigen
 
maze
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 73
Anmeldedatum: 05.04.11
Wohnort: Hamburg
Version: 7.11.0 R2010b
     Beitrag Verfasst am: 13.01.2012, 18:58     Titel:
  Antworten mit Zitat      
ich habs.
danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Finrond
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 14.10.11
Wohnort: München
Version: 7.10.0 (R2010a)
     Beitrag Verfasst am: 25.01.2012, 19:53     Titel:
  Antworten mit Zitat      
und was wars? bin nämlich genau am gleichen problem Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
maze
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 73
Anmeldedatum: 05.04.11
Wohnort: Hamburg
Version: 7.11.0 R2010b
     Beitrag Verfasst am: 28.01.2012, 12:22     Titel:
  Antworten mit Zitat      
ich habe im gui einen slider und einen pushbutton. mit dem slider stelle ich den wert meiner geschwindigkeit u0 ein. beim pushbutton übernehme ich den wert und gebe ihn an das programm weiter.
bei dem programm ist dann wichtig, dass das programm nicht nur glaze heisst, sondern in diesem fall glaze(u0), damit gewusst wird, dass u0 übergeben wird. u0 muss im programm dann selber auskommentiert werden.


Code:

% --- Executes on slider movement.
function sliderVelocity_Callback(hObject, eventdata, handles)
% hObject    handle to sliderVelocity (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider
sliderValue=get(handles.sliderVelocity,'Value');        
y=round(sliderValue/50)*50;  % kannst du auch weglassen. ist dafür gedacht, dass man nur einen diskreten wert schieben kann.
set(handles.sliderVelocity,'Value', y);

guidata(hObject, handles)


% hier wird mit dem Pushbutton der Wert des Sliders für u0 übernommen und an das Programm glaze weitergegeben und dann gestartet.

function pushbutton_Programm_laufen_lassen_Callback(hObject, eventdata, handles)
% hObject    handle to pushbuttonProgramm_laufen_lassen (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)%  


cla  % setzt die Figure immer wieder auf Null
glaze(get(handles.sliderVelocity,'value'))  % glaze heisst das programm, dem hier der wert vom slider Geschwindigkeit durch den tag des sliders übergeben wird. den tag habe ich im prperty inspector auf sliderVelocity benannt.
               
 
guidata(hObject, handles);
 



hast du mehr als eine variable musst du die reihenfolge einhalten.
hast du z.b. geschwindigkeit und radius muss es bei der pushbuttonübergabe so lauten:

Code:

glaze_ueberarbeiten(get(handles.sliderVelocity,'value'),...
                 get(handles.sliderRadius,'Value'))
 


im programm glaze dementsprechend glaze(u0,r0) und nicht glaze(r0,u0)
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 - 2025 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.