Verfasst am: 10.01.2013, 12:56
Titel: Sequenzen mit Werte bestimmen
Hallo zusammen,
ich habe eine Frage, mit der ich leider alleine nicht mehr weiterkomme.
Ich habe zum Beispiel folgenden Vektor:
1,3,7,NaN,Nan,2,4,10,NaN,3,17,NaN,2,NaN,NaN
Nun möchte ich eine Abfrage starten, die bei der ersten Zahl anfängt und zählt, wie viele "Blöcke" von aufeinanderfolgenden Zahlen es in Summe gibt.
Also für das Beispiel wäre es die folgenden "Blöcke":
1,3,7
2,4,10
3,17
2
Also in Summe 4 Blöcke. Gibt es da etwas Elegantes, wie man das herausfinden kann? Im Idealfall gibt es gleich noch die Länge für jeden Block an. Also für das Beispiel:
3
3
2
1
Würde gerne vermeiden, umständlich Schleifen zu bauen.
%Test,ob Eintrag NaN ist:boolean
nanlist=isnan(a)
%finde Position der Nan Eintraege
location_nan=find(nanlist)
%initialisiere block-array
bloecke=zeros(length(location_nan),1);
bloecke(1)=location_nan(1)-1 for i=1:length(bloecke)-1
bloecke(i+1)=location_nan(i+1)-location_nan(i)-1 end
als string importiert ist - und deine Daten dann wohl in Form eines cell arrays vorliegen, koenntest du analog auf die Eigenschaft isnumeric testen (die dann alle Zahleintraege betrachtet).
Y.
_________________
Nach unserer bisherigen Erfahrung sind wir zum Vertrauen berechtigt, daß die Natur die Realisierung des mathematisch denkbar Einfachsten ist. Albert Einstein
Suuuper - perfekt. Funktioniert beides einwandfrei - obwohl mir die Variante ohne Schleife natürlich besser gefällt.
Ich danke euch - ihr seid meine Rettung! *hüpf*
Maria
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.