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

Rückgabewertgui

 

Torsten23__

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2011, 12:28     Titel: Rückgabewertgui
  Antworten mit Zitat      
Hallo

ich hab mir mit guidata eine GUI erzeugt mit welcher ich mir durch graphische Auswahl zwei 3dimensionalle Arrays erzeuge...

jeweils in unterschiedlichen Funktionen...

nun möchte ich einen Button oder z.B "save" heißt

danach soll z.B.

xyz=daten1-daten2

gerechnet werden,

und xyz in den Workspace zurückgibt...

ist das irgendwie über varargout zu machen?

Viele Grüße

Torsten


mawi
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.04.11
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 28.06.2011, 12:41     Titel:
  Antworten mit Zitat      
Hallo Torsten,

ich bin mir nicht sicher was du genau suchst, aber könnte sein dass dir das weiterhilft.
Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
Torsten23__

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2011, 13:59     Titel:
  Antworten mit Zitat      
vielen dank, der Befehl war der den ich suchte... zumindest funktioniert dies nun...

ich habe nun ein GUI die zwischenzeitlich im Verlauf eines Skript gestartet wird um visuel bestimmte Werte festlegen zu können.... diese übergebe ich dann mit den genannten Befehl an das Skript zurück..

wäre es ein sinnvoller Weg... dass man versucht per "eines buttons" mit Befehl "save" oder "close" oder so ähnlich das Fenster wieder zu schließen... und das Skript weiter ausführen zu lassen?
 
mawi
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.04.11
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 28.06.2011, 15:01     Titel:
  Antworten mit Zitat      
das ist schwierig zu sagen ob das sinnvoll ist da ich dein Skript ja nicht kenne.

Wenn du die GUI nicht mehr benötigst und die Variablen übergeben hast kannst du die figure natürlich mit close schließen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Torsten23__

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2011, 15:16     Titel:
  Antworten mit Zitat      
hm, ich kann mit

Code:

function closepushbutton_Callback(hObject, eventdata, handles)

close all;
 


die GUI zwar schließen, aber danach führt er das kommende Skript nicht aus
 
Torsten23__

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2011, 15:22     Titel:
  Antworten mit Zitat      
bzw. die nachfoglenden Befehle im Skript
 
mawi
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.04.11
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 29.06.2011, 06:10     Titel:
  Antworten mit Zitat      
versuche es mal indem du bei close als Eingabeparameter das figure-handle angibst, das müsste eigentlich funktionieren

Code:

close(fhandle);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Torsten23__

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2011, 08:24     Titel:
  Antworten mit Zitat      
ok, jetzt bin ich etwas verwirrt...

also er scheint jetzt schon das danach auszuführen.... allerdings nicht erst wenn ich die GUI und das Fenster schließe sondern schon davor... wie kann ich einstellen, dass das erst ausgeführt wird wenn ich das Fenster schließe, weil ich ja dann erst zu diesem Zeitpunkt die Parameter mit den richtigen Zahlenwerten habe


Viele Grüße und vielen Dank

Torsten
 
Torsten23__

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2011, 15:56     Titel:
  Antworten mit Zitat      
http://compgroups.net/comp.soft-sys.....ntil-function-is-complete

denk hier steht die Lösung
 
Martin1986
Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 20.06.11
Wohnort: ---
Version: Win 2016b Linux 2016b
     Beitrag Verfasst am: 04.07.2011, 18:24     Titel:
  Antworten mit Zitat      
das ist eigentlich ganz einfach das gui hat ja schon eine output fcn
um diese zunutzen musst du in der opening function ein uiwait setzen
dann bei deinem Button die Berechnung durch führen und das ergebniss in ein handle speichern, danach uiresume
deine outputfcn musst du dann nach anpassen ala
Code:
varargout{1} = handles.deinhandle

an besten noch ein try und catch rum und die sache ist sauber gelöst

die 2. einfachere mgl ist eine globale variable Wink ist zwar kein rückgabewert funktioniert aber auch XD
Private Nachricht senden Benutzer-Profile anzeigen
 
Torsten23_

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2011, 14:36     Titel:
  Antworten mit Zitat      
das hätte ich mal probiert... unter

http://www.gomatlab.de/eingaben-aus.....,highlight,varargout.html

allerdings funktioniert es irgendwie noch nicht so richtig

Torsten
 
Martin1986
Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 20.06.11
Wohnort: ---
Version: Win 2016b Linux 2016b
     Beitrag Verfasst am: 10.07.2011, 15:25     Titel:
  Antworten mit Zitat      
Hier mal ein Beispiel für eine OutputFcn

Code:

function varargout = sync_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
set(gcf,'WindowStyle','Modal'); %make figure modal
handles.output = hObject;
    uiwait;
    handles = guidata(gcf);
    try
        %you code e.g
        varargout{1}=handles.Header;
        varargout{2}=outData;
    catch
        varargout{1}=-1;
        varargout{2}=-1;
    end
    delete(gcf);


getriggter habe ich das so
Code:

function okay_Callback(hObject, eventdata, handles)
% hObject    handle to okay (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
    guidata(hObject, handles);
    guidata(gcf, handles);
    uiresume;
Private Nachricht senden Benutzer-Profile anzeigen
 
__Torsten_23

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2011, 16:36     Titel:
  Antworten mit Zitat      
so hab ich mir das vorgestellt, die Wertübergabe funktioniert. Allerdings würde ich gerne wenn ich auf den Button drücke das Fenster schließen.
Aktuell muss ich zwei mal drücken... warum auch immer

Viele Grüße

Torsten

Code:

function varargout = concreate(varargin)

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @concreate_OpeningFcn, ...
                   'gui_OutputFcn',  @concreate_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

function concreate_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;
handles.output.total1=1;
handles.output.total2=2;

uiwait(hObject);

function varargout = concreate_OutputFcn(hObject, eventdata, handles)


    handles.output = hObject;
    uiwait;
    handles = guidata(gcf);
    try
        %you code e.g
        varargout{1}=handles;
        varargout{2}=handles.output;
    catch
        varargout{1}=-1;
        varargout{2}=-1;
    end
     
delete(gcf);


function var_value1_Callback(hObject, eventdata, handles)
a = get(handles.var_value1,'String');
handles.output.total1 = a

guidata(hObject, handles);

function var_value1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function var_value2_Callback(hObject, eventdata, handles)
b = get(handles.var_value2,'String');
handles.output.total2 = b

guidata(hObject, handles);

function var_value2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function Closesave_Callback(hObject, eventdata, handles)
guidata(hObject, handles);
guidata(gcf, handles);
    uiresume;
 
 
 
 
___Torsten__

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2011, 17:35     Titel:
  Antworten mit Zitat      
ich hatte 2 mal uiwait.... Problem gelöst...

Vielen Dank
 
Martin1986
Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 20.06.11
Wohnort: ---
Version: Win 2016b Linux 2016b
     Beitrag Verfasst am: 10.07.2011, 18:37     Titel:
  Antworten mit Zitat      
alles klar dann weiterhin viel erfolg und nicht vergessen auf gelöst zusetzen Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.