Habe ich nur 1 Signal und wechsel vom Zeit- in den Frequenzbereich ist alles ok, wobei auch hier der gleiche Plotbefehl ausgeführt wird. Wieso löscht er hier die handles nicht bzw. warum im oben genannten Fall?
Mein title und label handles lege ich in der MainGUIFcn an und formatiere (Schriftfarbe etc.) sie noch entsprechend an andere Stelle.
Code:
handles.hTitle = title(handles.axh,...
'SignalViewer - Darstellung von Signalen im Zeit- und Frequenzbereich',...
'Units','data',...
'Visible','on',...
'Tag','hTitle',...
'Interpreter','tex');
Normalerweise kommt das hold on nachdem das 1. Signal geplottet wurde um das 2. hinzuzufügen. Setze ich das hold on jedoch vor den Plotbefehl für Signal 1, werden die title und label handels nicht gelöscht. Also...
Eine mögliche Abhilfe: "hold on" lassen und die bisherigen Linien löschen:
Prinzipiell hätte ich damit kein Problem, jedoch führt das hold on dann bei der Darstellung des Spektrogramms in 3D zu einem fehlerhaften plot (siehe Bilder) Das Spektrogramm erstelle ich so.
Code:
% PLot Spektrogramm in 3D
hLineS(1) = surf(axh,t,fv,S);
Es lässt sich dann zwar wieder in die Darstellung aus dem 1. Bild rotieren, aber die Größe des Plots ist nicht korrekt.
An die zweite Variante habe ich auch schon gedacht, aber noch nicht ausprobiert.
Zitat:
P.S.: bitte die Beispiele möglichst kompakt halten. Mir ist hier auch der Zusammenhang zwischen den 6 Code-Schnipseln nicht wirklich klar.
Das ist halt nicht so einfach wenn man es aus einem größeren Projekt heraustrennen muss. Evtl. hilft diese Erklärung etwas...
1. Code: zeigt wie ich 2 Signale im Zeitbereich dargestellt werden
2. Code: wie die beiden Zeitsignale nach der FFT als Betragsspektrum dargestellt werden
3. Code: Sollte nur verdeutlich das die title und handle labels der Plotfunktion übergeben werden. Innerhalb der Plotfunktion werden also keine labels neu erstellt, sondern nur die vorhanden lediglich angepasst.l
4. Code: Zeigt wie ich in der Hauptfunktion der GUI das Title handle erzeuge, welches dann der Plotfunktion übergeben wird.
5. Code: Zeigt wie innerhalb der Plotfunktion der Text des title geändert wird. Mehr passiert mit den handles innerhalb der Plotfunktion nämlich nicht.
Ich werde deinen 2 Vorschlga mal testen. Falls ich nicht weiter komme, werde ich versuchen ein Beispiel zu erstellen, welches den Fehler beinhaltet.
auch nicht wirklich weiter. So sieht meine CreateFcn von axes aus:
Code:
% initial Plot on Signalviewer startup - show some Informations function PlotInit_CreateFcn(hObject, ~) % Init graph
handles.Data.hLineS(1) = plot(hObject,1:10, ones(1,10));
hold(hObject,'on')
handles.Data.hLineS(2) = plot(hObject,1:10, ones(1,10));
handles.Data.hLineS(3) = plot(hObject,1:10, ones(1,10));
handles.Data.hLineS(4) = plot(hObject,1:10, ones(1,10));
hold(hObject,'off') set(hObject,'XLim',[110],'YLim', [01])
% show no signals set(handles.Data.hLineS(1),'Visible','off') set(handles.Data.hLineS(2),'Visible','off') set(handles.Data.hLineS(3),'Visible','off') set(handles.Data.hLineS(4),'Visible','off')
% show information
info = sprintf('Information:\n\n');
Damit kann ich jetzt die LineHandles hLineS nehmen um die x- und y-Daten zu ändern.
Allerdings nutze ich auch die Funktionen
plotyy
zur Darstellung von Betrag und Phase des Frequenzspektrums sowie
imagesc
und
surf
für die Darstellung des Spektrogramms in 2D und 3D. Benötige ich also z.B. die plotyy Funktion, müsste ich erst wieder einen neuen leeren Plot erzeugen:
% show no signals set(handles.Data.hLineS(1),'Visible','off') set(handles.Data.hLineS(2),'Visible','off') set(handles.Data.hLineS(3),'Visible','off') set(handles.Data.hLineS(4),'Visible','off') end
Jetzt hänge ich aber hier wieder mit hold on, da ansonsten beim 1. Plotbefehl die label handles gelöscht werden. Und nun bin ich ehrlich gesagt etwas ratlos wie ich das Problem lösen kann.
da wird mir wohl nichts anderes übrig bleiben. Ich finde es halt etwas unsinnig die Labels neu zu erzeugen, wenn ich nur den String ändern möchte.
Ich hatte gehofft es gibt ein Lösung/Erklärung warum die Labels bei einem plot Befehl gelöscht werden.
Gruß DSP
Einstellungen und Berechtigungen
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.