Verfasst am: 17.02.2017, 17:14
Titel: while Schleife soll enden, sobald Wert in Matrix erreicht
Hallo,
ich habe mir eine Schleife programmiert, die enden soll, wenn in der Matrix der Wert in der letzten Zeile der Spalte 10 gleich 0 ist. Allerdings scheint die Schleife gar nicht zu starten. Woran liegt das?
Hier ist der Code:
Code:
%Liest die Nr. des ersten Micro-Segments ein.
MicroSeg= newStadt(1,4);
%Alle zugehörigen Zeilen des ersten Micro-Segments werden eingelesen.
StadtZyklus= newStadt(:,4)==MicroSeg;
StadtZyklus= newStadt(StadtZyklus,:);
while StadtZyklus(end,10) == 0
%Liest die Geschwindigkeit am Ende des vorangegangenen Micro-Segments ein.
%Sucht ein neues Micro-Segment mit Startgeschwindigkeit +/- 0.1 km/h zur Endgeschwindigkeit
%des vorangegangenen Micro-Segments. Sobald dieses gefunden ist, stoppt die
%Suche. Dadurch wird immer das nächst mögliche Micro-Segment mit hohem
%Emissionsaustoß gefunden. Denn in Matirx newStadt sind die Micro-Segmente absteigend nach
%Partikelausstoß sortiert.
for i = 1:size(newStadt,1) if newStadt(i,10) <= speed +0.1 && newStadt(i,10) >= speed-0.1 && newStadt(i,6) == 0 && newStadt(i,4) == newStadt(i+1,4)
newMicroSeg= newStadt(i,:);
break end end
addMicroSeg= newStadt(:,4) == newMicroSeg(1,4);
StadtZyklus= [StadtZyklus; newStadt(addMicroSeg,:)];
end
%Sucht ein neues Micro-Segment mit Startgeschwindigkeit +/- 0.1 km/h zur Endgeschwindigkeit
%des vorangegangenen Micro-Segments. Sobald dieses gefunden ist, stoppt die
%Suche. Dadurch wird immer das nächst mögliche Micro-Segment mit hohem
%Emissionsaustoß gefunden. Denn in Matirx newStadt sind die Micro-Segmente absteigend nach
%Emissionen sortiert.
for i = 1:size(newStadt,1) if newStadt(i,10) <= speed +0.1 && newStadt(i,10) >= speed-0.1 && newStadt(i,6) == 0 && newStadt(i,4) == newStadt(i+1,4)
newMicroSeg= newStadt(i,:);
break end end
addMicroSeg= newStadt(:,4) == newMicroSeg(1,4);
StadtZyklus= [StadtZyklus; newStadt(addMicroSeg,:)];
end
die enden soll, wenn in der Matrix der Wert in der letzten Zeile der Spalte 10 gleich 0 ist. Allerdings scheint die Schleife gar nicht zu starten. Woran liegt das?
Weil die Bedingung genau das Gegenteil überprüft. Du möchtest wohl
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.