Verfasst am: 03.06.2009, 09:05
Titel: Matlab plot erstellen aber nicht alle pkt. vom mat file ben.
hallo,
leider ergab die sufu nichts! hier mein problem:
ich habe zwei verschiedene ströme, aus einer simulation und einer messung. beide liegen als mat file vor. nur habe ich das problem das die simulation 6s lang ist und die messung nur 1s. ich möchte zwei ströme aus jeder messung überlagern und dann vergleichen. wie kann man es anstellen das man nur die letze sekund von der simulation verwendet, als von sekunde 5-6 ?
hier mein skript:
Code:
load current_data_500rpm_0_064_load.mat
data = current_data_500rpm_0_064_load
figure(1);
hold on;
grid on;
title('Current');
xlabel('Time [s]');
ylabel('Current Ia [A]');
% Current Ia plot(data.X.Data(:),data.Y(6).Data(:),'r') plot(scope_stator.time(:),scope_stator.signals.values(:,1),'b')
h = legend('I_a_measure','I_a_sim',2);
set(h,'Interpreter','none','Location','SouthEast')
figure(2);
hold on;
grid on;
title('Current');
xlabel('Time [s]');
ylabel('Current Ib [A]');
% Current Ib plot(data.X.Data(:),data.Y(7).Data(:),'r') plot(scope_stator.time(:),scope_stator.signals.values(:,2),'b')
h = legend('I_b_measure','I_b_sim',2);
set(h,'Interpreter','none','Location','SouthEast')
figure;
hold on;
grid on;
title('Current');
xlabel('Time [s]');
ylabel('Current Ic [A]');
% Current Ic plot(data.X.Data(:),data.Y(8).Data(:),'r') plot(scope_stator.time(:),scope_stator.signals.values(:,3),'b')
h = legend('I_c_measure','I_c_sim',2);
set(h,'Interpreter','none','Location','SouthEast')
bei dem plot(scope_stator.time(,scope_stator.signals.values(:,1),'b') handelt es sich um das simulations signal. wie muss ich jetzt die werte ändern??? kann mir jemand helfen?
plot(scope_stator.time(50:end),scope_stator.signals.values(50:end,1),'b'); % wenn die Simulation 10 Datenpunkte pro Sekunde ausgibt % ansonsten such erst nach dem letzten Index der kleiner ist als 5 sek:
idx = find(scope_stator.time<5,'last');
plot(scope_stator.time(idx:end),scope_stator.signals.values(idx:end,1),'b');
plot(scope_stator.time(50:end),scope_stator.signals.values(50:end,1),'b'); % wenn die Simulation 10 Datenpunkte pro Sekunde ausgibt % ansonsten such erst nach dem letzten Index der kleiner ist als 5 sek:
idx = find(scope_stator.time<5,'last');
plot(scope_stator.time(idx:end),scope_stator.signals.values(idx:end,1),'b');
habe jetzt mal deine lsg. getestet. bei mir sieht es so aus das ich ab datenpkt. 100000 sekunde 5 habe. dein zweiter ansatz funzt bei mir nicht, es kommt folgende fehlermeldung:
error using -> find
second argument must be a positive scalar integer
hab gerade wieder so plot problem. habe das file angefügt. ich möchte wieder einmal zwei plots miteinander vergleichen. irgendwie schaffe ich es nicht das ich wieder erst ab sekunde 0,3942 beginne und ab 0,9516 aufhöre mit dem plot!
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.