Verfasst am: 04.03.2010, 16:51
Titel: Probleme bei Übergabe von Daten zwischen GUI-Funktionen
Hallo,
ich habe ein Problem bei der Übergabe von Daten innerhalb meines GUIs. Eine Funktion hat die Aufgabe Dicom-Header (struct-array) mit der Unterfunktion "h.dinfo = dicomanalyzeDCE(FileNameRef);" auszulesen und in eine sturucture h.dinfo zu schreiben. Das funktioniert auch. Das erste Bild aus diesem Array wird dann angezeigt, indem auf den Namen im Header zugegriffen wird (dicomread(h.dinfo.A01.Filename); ).
Ich dachte ich könnte diese Daten dann an eine andere funktion (Slider) übergeben, die sich je nach Position des Sliders Daten aus der zugehörigen Position meiner Daten in h.dinfo (z.B. h.dinfo.A02.Filename) abruft, um das aktuelle entsprechende Bild anzuzeigen. Das funktioniert aber nicht, weil das Structure Array gar nicht in dieser Funktion "ankommt". Ich habe versucht die Daten mit set(h.dinfo, 'callback', {@SliderImg, h}) zu übergeben, aber dann erhalte ich die Fehlermeldung
function h = SetFolder(hObject, eventdata, h)
%% Auswahl des Verzeichnisses mit den MR Bildern [FileNameRef,PathNameRef] = uigetfile('*.dcm','Please select a DCE image');
cd(PathNameRef);
h.dinfo = dicomanalyzeDCE(FileNameRef);
h.dinfo
Habe das Probelm mit globalen Variablen gelöst...
Die Structure dinfo in beiden Funktionen als global und dann (da war noch ein Fehler...) in der zweiten Funktion ausgelesen und über eval weiterverwendet...
Code:
var = ['dinfo.A0',num2str(1+slider_value*15),'.Filename'] var = eval(var)
img = dicomread(var);
Der Fehler hieß einfach, dass du kein handle übergeben hast.
h.dinfo ist eine Struktur ( wie man h.dinfo.A01.Filename erkennt)
handle ist aber Adresse auf GUI-Object, und muss von type double sein.
Deswegen kommt es zu diesem Fehler.
Wahrscheinlich musste h.SliderImg übergeben werden, oder?
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
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.