jetzt filtert mir Matlab herrvorragend die Zeiten raus, in denen diese erfüllt sind.
Problem:
bei einer Heizung erkennt er 16 Haltezeiten und bei der zweiten nur 15.
Matlab soll erkennen, dass während der einen Haltezeit die andere Heizung die Bedingung nicht erfüllt und diese Zeile dann einfach rauslöschen aus HZ_hk.
Das Problem Deines Codes ist, dass Du am Anfang Elemente aus einem Vektor löschst, der dadurch kürzer wird. Wenn Du z.B. aus einem [1 x 3] Vektoe das erste Element löschst, ist es nur noch ein [1 x 2] Vektor, und das dritte Element von diesem kann nicht mehr gelöscht werden.
Code:
[rj,cj]= size(HZ_jumo);%Größen von HZ_jumo
[rhk,chk]= size(HZ_hk);%Größen von HZ_hk
if rj >rhk
index = (abs(HZ_jumo(1:rj,1)-HZ_hk(1:rj,1)) > 100);
HZ_jumo(index, :) = [];
end
Hier kann man nur ganze Zeilen löschen! Aus einer Matrix kann man natürlich nicht einzelne Elemente in nur einer Spalte löschen, da das Ergebnis dann nicht mehr rechteckig wäre.
Allerdings hat Jan recht, ab dem Zeitpunkt bei dem einmal die Bedingung erfüllt ist, ist sie immer erfüllt.
Hättet Ihr eine Idee für eine allgemeine Lösung?
Ich hatte
Zitat:
l1=l1-1
probiert, jedoch ohne Erfolg
Wäre euch sehr dankbar!
LG Johannes
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.