|
|
Teilsummen, Durchschnitte und Renditen in einer Matrix |
|
Maxius |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.09.2009, 17:26
Titel: Teilsummen, Durchschnitte und Renditen in einer Matrix
|
|
Hallo zusammen!
Ich bin kürzlich auf das Forum aufmerksam geworden und habe tolle Tipps gefunden! Jetzt hätte ich selber eine Frage hinsichtlich der Teilsummenbildung innerhalb einer Matrix. Die Matrix hat die Dimension 2000x50.
Ich möchte für eine exakt definierte Anzahl von Intervallen (=40 Reihen pro Intervall) die jeweiligen Teilsummen bilden. D.h. in allen Spalten von Reihe 1-40, 41-80, 81-120, ... , 1961-2000 die jeweilige Teilsumme. Meiner Rechnung nach müsste dann eine 50x50 Matrix entstehen.
Welche Befehlsfolge (nur für die Teilsummenbildung, alles andere müsste passen) könnte ich hierfür verwenden?
Wie kann ich ferner die arithmetischen/geometrischen Durchschnittswerte in den Intervallen der Matrix berechnen?
Ist es auch möglich, eine Division des letzen durch den ersten Wert von Teilintervallen durchzuführen?
Ich danke Euch vielmals für den Support!
Viele Grüße
Max
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 20.09.2009, 19:20
Titel:
|
|
Hallo,
probier mal das... wenn N die Matrix ist
Idee: Matrix so umwandeln, dass die zu summierenden Werte in separaten Spalten stehen... summieren... zurückwandeln.
Grüße,
Harald
|
|
|
Maxius |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.09.2009, 20:04
Titel:
|
|
Hallo Harald,
das werde ich sofort mal ausprobieren, danke!
|
|
|
Maxius |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.09.2009, 20:36
Titel:
|
|
Hallo nochmal!
Hat super geklappt, nochmals vielen Dank, Harald!
Zitat: |
Wie kann ich ferner die arithmetischen/geometrischen Durchschnittswerte in den Intervallen der Matrix berechnen?
Ist es auch möglich, eine Division des letzen durch den ersten Wert von Teilintervallen durchzuführen? |
Könntest Du mir bei diesen Fragen auch weiterhelfen?
Gruß!
|
|
|
Sani |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 03.09.09
|
|
|
|
Wohnort: Neu-Ulm
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 21.09.2009, 07:56
Titel:
|
|
Im Prinzip kannst du einen ganz ähnlichen Code verwenden.
Du hast in diesen Intervallen ja 40x50=2000 Werte.
Also:
Dann bekommste eine 50x50 Matrix anstatt mit den Teilsummen mit den arr. Mitteln.
Hoffe ich hab mich so früh noch nicht vertan
@Harry: Übrigens ne tolle Idee muss man erstmal draufkommen
Greez!
_________________
Wer Rechtschreibfehler findet darf sie behalten.
Codefehler bitte melden
|
|
|
Maxius |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.09.2009, 10:26
Titel:
|
|
Guten morgen, Sani!
Auch Dir vielen Dank. Hat ebenfalls bestens geklappt! >So früh und schon so fit ;D!
Der Denkanstoß von Harald war klasse; ich hoffe demnächst auch mal solche Anstöße geben zu können >blutiger matlab-beginner!
Zitat: |
Ist es auch möglich, eine Division des letzen durch den ersten Wert von Teilintervallen durchzuführen?
|
Diese Frage brennt mir noch auf den Nägeln.
Wie kann ich zudem zwei Matrizen mit der gleichen Form, sagen wir 32x42, durcheinander teilen; eine Division durchführen, damit wieder eine 32x42 Matrix als Ergebis herauskommt? Also quasi den i-j-Wert der ersten Matrix durch den i-j-Wert der zweiten Matrix and so on...
Dickes DANKE
Max
|
|
|
Maxius |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.09.2009, 10:44
Titel:
|
|
Mir ist aufgefallen, dass ich diese letzte Frage vielleicht in einem neuen Thema verpacken sollte. Gehört ja inhaltlich nicht mehr zur Fragestellung...
|
|
|
Sani |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 03.09.09
|
|
|
|
Wohnort: Neu-Ulm
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 21.09.2009, 10:52
Titel:
|
|
Also das dividieren geht meiner Meinung nach mit
wobei A die erste und B die zweite Matrix ist. Der Punkt sorg dafür dass "schrittweise", wert für wert dividiert / multiplizier / addiert / subtrahiert / potenziert / .... wird
Die Division die du angesprochen hast (erster und letzer Wert von TI) ist prinzipiell möglich, da musst du aber mit Indizis arbeiten.
Bsp:
Matrix 3x2 gefüllt mit irgendwas
Wenn du das für alle TI machen willst brauchst du halt noch eine Schleife die dementsprechend dann hochzählt...
Kennst du Schleifen? Wenn nein schreib dann helf ich dir hab grad nur den Chef im Nacken
Greez
P.S. wenn du soooooo viel wissen willst meld dich gefälligst an
_________________
Wer Rechtschreibfehler findet darf sie behalten.
Codefehler bitte melden
|
|
|
Maxius |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 21.09.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.09.2009, 12:29
Titel:
|
|
Hi Sani, angemeldet läuft's auch einfacher !
Bei der Ausgabe von
meldet matlab den fehler: invalid matlab syntax . Ich möchte ja von jedem einzelnen Wert der Matrix den Wert "1" subtrahieren.
Aber genau, ich muss für alle Teilintervalle die Berechnung anstellen. Schleifen habe ich schon getestet. Jedoch bin ich mir nicht sicher, ob ich das hier hinbekommen.
Gruß! Max
|
|
|
Maxius |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 21.09.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.09.2009, 13:30
Titel:
|
|
Hallo!
Super, das mit den einzelnen Teilindizes klappt. Aber bei dem Datenumfang muss ja wohl doch eine Schleife her !
Wenn ich das auf meine repräsentative 32x43 Matrix beziehe, möchte ich ja für jedes Intervall, wenn "i" Reihen und "j" Spalten sind, folgendes berechnen:
z.b. 4er-Schritte: für Reihen: 4/1-1, danach 8/5-1, 12/9-1, ... , 32/29-1 [für alle Spalten]. (die "-1" um den Prozentwert als Dezimalzahl zu erhalten).
Wie könnte ich dafür eine Schleife basteln?
PS: Auf den Chef aufpassen
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.09.2009, 13:31
Titel:
|
|
Hi,
kurz ein paar Sachen:
Wenn ich es richtig sehe, wird immer über 40 Werte gemittelt, also sollte man durch 40 teilen. Oder gleich die Funktion mean anwenden.
Geometrisches Mittel:
Die Divisionsgeschichte:
Das sollte die for-Schleife vermeiden.
Grüße,
Harald
|
|
|
Sani |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 03.09.09
|
|
|
|
Wohnort: Neu-Ulm
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 21.09.2009, 13:53
Titel:
|
|
Hast recht, mein Fehler
hingegen funktioniert Prima.
Du willst also von deinem TI den 2000. Wert durch denn 1. Teilen? Muss das Ergebnis wieder als 50x50 Matrix rauskommen?
Unabhängig davon würde die eine for-Schleife empfehlen.
i: Zählvariable (lokal)
k: Zählvariable (lokal)
N: deine Matrix
erg: Spaltenmatrix (Eindimensional) als Ergebnismatrix
Wenn du wie vorhin eine 50x50 Matrix haben willst musst du den Kempel am besten in eine Funktion packen und die Funktion dann im ähnlichen Stiol aufrufen wie die Teilsumme oder das Mittel...
Greez
_________________
Wer Rechtschreibfehler findet darf sie behalten.
Codefehler bitte melden
|
|
|
Sani |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 03.09.09
|
|
|
|
Wohnort: Neu-Ulm
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 21.09.2009, 13:56
Titel:
|
|
wieso über 40 werte? hab ich mich verlesen?
dache 40 reihen à 50 Werte....
Wenn ja wars mein Fehler.
Und ja Haralds idee ist natürlich viel besser als meine Dumme schleife
danke
auch was gelernt ^^
_________________
Wer Rechtschreibfehler findet darf sie behalten.
Codefehler bitte melden
|
|
|
Maxius |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 21.09.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.09.2009, 15:33
Titel:
|
|
|
|
|
Hallo Harald, hallo Sani!
Ja, ich habe etwas geschländert mit den Dimensionen; ich lege sie nun wie am anfang erwähnt auf 2000x50 (Ursprungsmatrix) fest.
Die Ergebnismatrix soll eine 50x50 Matrix sein, da die Intervalle aus 40 Reihen bestehen.
Beide Möglichkeiten (mit oder ohne Schleife) sind cool für die Divisionsgeschichte. Jedoch hätte ich zu Harald's Vorschlag noch eine Frage:
Ich bekomme hier ganz komische Matrixdimensionen. Ziel sollte jedoch für "verh" auch eine 50x50 Ergebnismatrix sein. Dabei soll für jedes Intervall (=50 Intervalle pro Spalte, bestehend aus je 40 Reihen) für jede Spalte (=50 Spalten gesamt) der letzte Wert des Intervalls durch den ersten dividiert weren (und dann von diesem Wert -1 subtrahiert werden>damit man den Wert als Prozentzahl hat.) >Renditeberechnung
Beispiel:
A = [1 2 3 4 ;6 7 8 9 ]'
In der Ergebnismatrix würden dann (2/1)-1 und (4/3)-1 für Spalte1 berechnet werden und (7/6)-1 und (9/-1 für Spalte2
Hilft das weiter?[/code]
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.09.2009, 15:55
Titel:
|
|
Hallo,
da habe ich etwas zu früh aufgehört:
Grüße,
Harald
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|