Verfasst am: 22.04.2010, 11:20
Titel: gibt es sowas wie ein liveplot?
liebe profis,
ich weiss nicht ob die frage evtl. zu simpel ist um sie hier zu stellen, aber ich suche nach einer möglichkeit eine art liveplot zu machen. d.h. ich hab einen aufbau mit einem oszi -> spannung geht rein & wird auch angezeigt, aber halt nur momentaufnahmen (snashot). aber wie kann ich den plot richtig "laufen lassen" sodass wenn ich die spannung oder frequenz ändere der plot sich auch ändert.
danke für die schnelle antwort harald.
aber das mit dem linkdata haut nicht so richtig hin. ich kann damit "nur" die achsen ändern & den plot dementsprechend anders darstellen. könnte man denn den plot z.b. refreshen? alle 1 sec.? macht das sinn? wenn ja, wie ginge das?
es müssen natürlich die geänderten Variablen neu berechnet werden. Wenn sich also z.B. eine Frequenz ändert, muss die Schwingung neu errechnet werden. Ansonsten sollte linkdata genau das machen.
Falls das nicht für dich geeignet ist, versuche doch den ersten Ansatz.
Ggf. drawnow verwenden, damit der Graph auch wirklich aktualisiert wird.
Eine weitere Alternative für periodischen Refresh: Verwenden von Timer-Funktionen.
Grüße,
Harald
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 22.04.2010, 12:26
Titel:
das sieht gut aus!
aber ich bekomm immer den fehler
??? Error using ==> plot
Invalid property found.
Object Name : line
Property Name : 'yScale*y1'.
Error in ==> mat1401X at 75
h = plot(t,y,'yScale*y1','y');
er scheint den input nicht zu akzeptieren. mach ich was falsch?
laut doc soll man das so umsetzen:
t = 0:pi/20:2*pi;
y = exp(sin(t));
h = plot(t,y,'yScale*y1','y');
for k = 1:.1:10
y = exp(sin(t.*k));
refreshdata(h,'caller') % Evaluate y in the function workspace
drawnow; pause(.1)
end
Wenn ich das hier in ein Script packe und laufen lasse sieht das schon mal recht "live" aus. und durch die zu geringe Abtastrate macht es sogar noch lustige Effekte:
für mich ist matlab absolutes neuland, und seit einigen tage beschäftige ich mich mit plots. gibt es eine möglichkeit peaks (minimum & maximum) zu messen und anschliessend auszugeben? folgendes bsp. ist das einfache einlesen von einem audiostream
Code:
AI = analoginput('winsound', 0);
addchannel(AI,1);
duration = 60; % Ten second acquisition set(AI,'SampleRate',8000)
ActualRate = get(AI,'SampleRate');
set(AI,'SamplesPerTrigger',duration*ActualRate)
preview = duration*ActualRate/100;
subplot(211) set(gcf,'doublebuffer','on')
%t=200:1:400;
P = plot(zeros(preview,1)); grid on
title('Preview Data') xlabel('Samples') ylabel('Signal Level (Volts)')
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.