Jährliche Berechnung per Bedingung mit Bezug auf Spalten
Pasha007
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 14.01.2013, 12:26
Titel: Jährliche Berechnung per Bedingung mit Bezug auf Spalten
Hi,
Habe folgende Matrix mit 3 Spalten. 1. Spalte Jahr. zweite und dritte Rendite. Die angegeben Matrix ist nur ein kurzer Ausschnitt aus der Urspungsmatrix.
2. Aufgabenstellung.
Es soll also, sobald die zweite Zeile größer ist, als die dritte, ein Zähler um eins erhöht werden? Für 1990 müsste also als Ergebnis 5 rauskommen.
Oder doch das, was bei dir in der code-zeile steht? Welches stimmt nun? Z2<Z3, oder Z2>Z3?
Unabhängig von der Unklarheit:
Du musst die erste Spalte deiner Matrix z.B. per unique vereinzeln. Somit hast du einen Vektor mit den Jahren.
Nun kannst du z.B. in einer for-Schleife über jedes Jahr die Summe berechnen. Die von dir gepostete Anweisung muss aber auf eine neu erstellte Teilmatrix angewendet werden. Oder der Doppelpunkt entsprechend ersetzt werden.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Verfasst am: 14.01.2013, 13:04
Titel: Re: Jährliche Berechnung per Bedingung mit Bezug auf Spalte
Hallo Pasha007,
Zitat:
Wie schaffe ich das nun, dass er für jedes Jahr Spalte 2 > Spalte 3 rechnet und das zusammen zählt.
Das verstehe ich nicht. Was bedeutet "Spalte 2 > Spalte 3 rechnen" und was wird dann zusammen gezählt?
Gruß, Jan
Pasha007
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 14.01.2013, 13:10
Titel:
1. Ja das mit dem Komma hat er einfach beim kopieren i-wie transformiert. Im Matlab stehen Punkte.
2. Nein, er soll einfach nur aufzählen wie oft im Jahr Spalte 2 kleiner als Spalte 3 ist.
Sozusagen countTraffic für das Jahr 1990 ist 0. Da keine der Renditen in Spalte 2 größer sind als die Renditen in Spalte 3.
Als Ergebnis hätten wir gerne eine Matrix die z.b. so aussehen könnte:
1990 0
1991 2
1992 0
...usw.
Wäre auch nicht so schlimm, wenn im Ergebnis das Jahr nicht drinsteht, sondern nur ein Vektor, der die Anzahl in chronologischer Reihenfolge angibt.
0
2
0
....usw.
Vielen Dank für deine Hilfe!
Pasha007
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 14.01.2013, 13:14
Titel:
edit: Im ersten Post habe ich geschrieben Spalte 2> Spalte 3, richtig ist natürlich wie im Code angegeben Spalte 2 < Spalte 3
@ Jan: Ziel ist die Häufigkeit wie oft ein Wert, pro Jahr, in Spalte 2 kleiner ist als in Spalte 3.
Als Ergebnis hätten wir gerne eine Matrix die z.b. so aussehen könnte:
1990 0
1991 2
1992 0
...usw.
Wäre auch nicht so schlimm, wenn im Ergebnis das Jahr nicht drinsteht, sondern nur ein Vektor, der die Anzahl in chronologischer Reihenfolge angibt.
0
2
0
....usw.
Dann probiere dich doch mal im Umsetzen mit den von mir oben geposteten Hinweisen.
1. aus Spalte 1 mittels unique eine neue Matrix mit den Jahren
2. for Schleife über diese neue Matrix
2.1 Jahr für Jahr berechnen -> evt. per neuer Matrix erstellen, die nur die Einträge des jeweiligen Jahres enthält
2.2 vergleich und Summenbildung
2.3 Ergbnismatrix mit [Jahr, Ergebnis]
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Pasha007
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 14.01.2013, 13:39
Titel:
@Martina: Vielen Dank erstmal für deine Hilfe!
Verstehe ich aber nicht so ganz... Was bringt mir ein neuer Vektor nur mit den Jahren. ( Mit dem Befehl unique schneiden wir doch einfach die Jahre aus?)
Versteh auch nicht was die for-Schleife über den neue Matrix bezwecken soll...
Könntest du vlt. zur Verdeutlichung beispielhaft ein Code darstellen
@Martina: Vielen Dank erstmal für deine Hilfe!
Verstehe ich aber nicht so ganz... Was bringt mir ein neuer Vektor nur mit den Jahren. ( Mit dem Befehl unique schneiden wir doch einfach die Jahre aus?)
Deine obige Codezeile erledigt ja grundsätzlich schon das, was du willst, bis auf den kleinen unterschied, dass du nicht über alle Zeilen (Doppelpunkt), sondern über bestimmte Zeilen summieren willst.
Du also brauchst also zuerst einen Vektor, welcher die einzelnen zu unterscheidenden Elemente (hier Jahre) enthält.
@Martina: Genauso meine ich das! Vielen Dank, hast mir sehr weitergeholfen!
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.