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 in gui einbinden

 

ms1080
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 09.04.2010, 11:24     Titel: programm in gui einbinden
  Antworten mit Zitat      
hi

ich habe ein programm, welches ich gerne in ein gui einbinden will. das programm soll eine datei einlesen, genau dann, wenn der nutzer den im gui vorgesehnen button betätigt. die datein sollen dann durch drücken weiter button bearbeitet werden.
leider funktioniert das nicht so wie ich mir das vorstelle.

Code:

function W_Callback(hObject, eventdata, handles)                    

[txtfile,path2txt] = uigetfile('*.txt','Bitte Datei auswählen');
fid = fopen(fullfile(path2txt,txtfile),'r');
    rawdata1 = textscan(fid,'%f %f %f','headerlines',8);                  
    data1 = rawdata1{3};                                              
    data1 = reshape(data1,1200,250);                                      
fclose(fid);
 


wenn ich das programm einzeln ausführ funktioniert es einwandfrei, im gui reinkopiert sehe ich die erzeugten daten nicht mehr.

wie kann ich das sonst noch machen?

Sind die daten so nicht in matlab hinterlegt?

kann ich trotzdem mit den daten weiterarbeiten?

oder muss ich das programm weiter oden in der m-file einbinden?

mfg nitram
Private Nachricht senden Benutzer-Profile anzeigen


Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2010, 11:40     Titel:
  Antworten mit Zitat      
Verstehe ich dich richtig:

Du führst die Funktion jetzt innerhalb einer GUI aus und wunderst dich warum Du bspw. data1 nicht mehr im MATLAB Workspace sehen kannst?

Das hat den Grund, dass Matlab für die GUI einen eigenen Workspace aufgemacht hat in dem diese nun lagern (sie sind also noch da).

Du kannst in der Funktion darauf zugreifen...endet die Funktion sind sie aber erstmal weg...da data1 das Ende nicht überlebt.

Um das zu verhindern kannst Du z.B.

Code:

assignin('base', 'neuedata1', data1);
 


Die Variable data1 in den Standard Workspace "kopieren"

Willst Du aber eigentlich alles über die GUI erledigen bringt das nicht viel.

Dann solltest Du mit

Code:

handles.data1 = data1;
guidata(hObject, handles);
 


Die Daten im handle speichern, welches den einzelnen Funktionen immer übergeben wird...

Darauf kannst Du dann (solange handles an die Fcn übergebn wurde) bspw. mit:

Code:

x = handles.data1;
 

zugreifen.
Private Nachricht senden Benutzer-Profile anzeigen
 
ms1080
Themenstarter

Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 14.04.2010, 08:08     Titel:
  Antworten mit Zitat      
danke das funktioniert einwandfrei so

mfg nitram
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.