Verfasst am: 11.08.2015, 12:45
Titel: xlabel und ylabel
Hallo,
ich habe über ein Pushbutton eine Excel-Datei eingelesen.
In 2 Popupmenüs werden dann sofort die Spaltennamen der Excel-Datei angezeigt.
Je nachdem was angeklickt wird, wird es als 2-D geplotet.
Ich möchte die zwei ausgewählten Spaltennamen, die geplotet werden auch als Achsenbeschriftung verwenden. Wie funktioniert das?
Mein Code sieht folgendermaßen aus:
Code:
function Lade_xls_Callback(hObject, eventdata, handles)
function Daten_Laden_Callback(hObject, eventdata, handles) % hObject handle to Daten_Laden (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Weise Datem jeweils einem Pointer zu
handles.data=data;
handles.SOC=SOC
handles.temp=temp
handles.pulsdauer=pulsdauer
handles.txt=txt
guidata(hObject,handles)
function setPopupmenuString(hObject, eventdata, handles)
Den Base-Workspace als Zwischenlager für Daten zu verwenden ist eine tückische Idee. Bist Du ganz sicher, dass Du das brauchst?
Wieso die Achsenbeschriftungen nicht angezeigtz werden, weiß ich nicht. Verwende doch mal den debugger um herauszufinden, was in den entsprechenden Zeilen geschieht.
Ohne den Base Workspace wüsste ich nicht, wie ich meine eingelesene Excel-Datei in einer Tabelle in gui darstellen lassen soll?
könntest du mir da helfen?
ich lass mal den Debugger durchlaufen.
Speichere die Daten lieber in der ApplicationData oder UserData der Figure. Siehe
guidata
und
setappdata
.
Zitat:
Eine ganz doofe Frage, da ich erst seit einer Woche mich mit Matlab beschäftige.
Wie lass ich den Debuger durchlaufen?
Nein, das ist eine sehr gute Frage! Der Debugger ist der beste Freund des Programmierers - sogar noch besser als dieses Forum.
Du kannst auf der linken Seite im Editor-Fenster einen roten Punkt setzen mit der Maus. Dann läuft Matlab so lange, bis es an diese Zeile kommt. Nun kannst Du die Werte der lokalen Variablen im Workspace-Browser oder im CommandWindow kontrollieren (und ändern). Nun kannst Du zeilenweise durch den Code gehen, indem Du die dazugehörigen Icons in der Toolbar des Editor-Fensters benutzt (oder die entsprechenden Funktionstasten). Das Ganze ist auch in der Dokumentation prima beschrieben:
function Daten_Laden_Callback(hObject, eventdata, handles) % hObject handle to Daten_Laden (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%Daten werden in der UserData der figure gespeichert
[data, txt] = xlsread(handles.fileName);
f=figure('visible','off');
setappdata(f, 'data', data);
setappdata(f, 'txt', txt);
% Schreibe Input in die GUI-Tabelle set(handles.eingabe_tabelle,'data',data)
% Weise Datem jeweils einem Pointer zu
handles.data=data;
handles.SOC=SOC
handles.temp=temp
handles.pulsdauer=pulsdauer
handles.txt=txt
guidata(hObject,handles)
function setPopupmenuString(hObject, eventdata, handles)
Wir können Deinen Code mangels Daten nicht laufen lassen. Ich kann nicht erraten, was der String 'Test2(''updateAxes'',gcbo,[],guidata(gcbo))' tut, wenn er als Callback ausgeführt wird, weil ich nicht weiß, was "Test2" ist. Da Strings als Callbacks sowieso seit über 10 Jahren nur noch wegen der Rückwärtskompatibilität erlaubt sind, würde ich Dir unbedingt raten, auf die üblichen Function-Handles überzugehen.
Setze doch mal einen Breakpoint in die Zeile, in der die XLabels gesetzt werden und prüfe so, ob sie überhaupt aufgerufen wird. Ist das entsprechende AXES-Objekt sichtbar?
Ohne den lauffähigen Code zu sehen, kann man nur wild raten, wo das Problem liegen könnte. Aber mit dem Debugger solltest Du das selbst herausfinden können.
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.