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

Daten zwischen 2 GUIs übergeben (große Daten)

 

geieraffe
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 19.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.04.2012, 13:55     Titel: Daten zwischen 2 GUIs übergeben (große Daten)
  Antworten mit Zitat      
Hallo Community,

ich versuche mich seit ein paar Tagen an einem Programm, das am Ende aus 2 GUIs bestehen soll (ich hab diese mit GUIDE erstellt).

In der ersten GUI werden Datensätze ausgewählt und eingelesen.
In der zweiten soll der ausgewählte Datensatz ausschnittsweise, je nach ausgewähltem Idx, geplottet werden.

Meine Datensätze sind aber sehr sehr groß.
Wenn ich sie als Argument übergeb und dann aus vargin in der zweiten GUI wieder in den WS lege, bekomm ich regelmäßig einen out of memory.

Gibt es noch eine andere Möglichkeit außer meine Datensätze global abzulegen? Oder der Umweg über alignin und evalin? Damit tipp ich mir näml wohl die Finger blutig Smile
Private Nachricht senden Benutzer-Profile anzeigen


outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 20.04.2012, 15:01     Titel:
  Antworten mit Zitat      
Zitat:
Wenn ich sie als Argument übergeb und dann aus vargin in der zweiten GUI wieder in den WS lege,

wenn Du die Daten im WS ablegst, legst Du die unter dem gleichen Namen oder einem anderen ab?

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
geieraffe
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 19.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2012, 16:56     Titel:
  Antworten mit Zitat      
unter dem gleichen, aber das spielt ja eigtl keine rolle weil es ja getrennte WS sind. ... sonst müsste ich sie ja nicht übergeben.

inzwischen hab ich auch setappdata() und getappdata() versucht, aber auch da liegt mein struct den ich dann lade ja immer doppelt im speicher.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.04.2012, 22:24     Titel:
  Antworten mit Zitat      
Hallo geieraffe,

In Matlab wird eine Shared-Data-Copy übergeben, also eine zweite Variable, die aber auf die gleichen Daten zeigt. Erst wenn die zweite Variable verändert wird, wird eine echte, speicherzehrende Daten-Kopie erstellt. Wieso und wann das in Deinem Programm geschieht, weiß ich nicht.

Du könntest die Daten auch in einer GUI per GUIDATA speichern (welches intern übrigens SETAPPDATA verwendet), und die die zweite GUI einen Callback der ersten aufrufen lassen, die den gewünschten Subvektor zurückliefert.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
geieraffe
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 19.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2012, 12:04     Titel:
  Antworten mit Zitat      
Hey Jan,

vielen Dank! Ich hab es momentag schon mit set/getappdata umgesetzt. Das funktioniert mit den kleineren Datensätzen soweit auch ganz gut. Nur mit den großen immernoch nicht, weil ich mit structs arbeite und man kann ja nicht direkt auf die structs zugreifen mit getappdata, oder doch!?

falls da jemand ne lösung hätte wäre das optimal.

... sonst muss ich mir vielleicht doch überlegen das ganze auf einem server laufen zu lassen :/
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.