Matrix-Zeilen vervielfachen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 15:58 So 07.01.2007 | Autor: | mucruler |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo an Alle,
ich bin neu hier und kein wirkliches Programmier/Mathegenie
Hier meine Frage ich habe 2 Tabellen aus excel eingelesen.
Beide Tabellen enthalten dieselben Firmennamen(ID) und Aktienkurse zu bestimten Zeitpunkten.
Also folgendes Format: ID DATE KURS
(wobei die ID fortlaufend ist und das Datum im excel format)
Das Problem ist, dass die eine Tabelle Monatsdaten hat und die andere nur Jahresdaten.
Ich muss also in der 2. Tabelle jede zeile ver-12-fachen und dann an der richtigen stelle in der ersten Tabelle einfügen.
Vielen Dank für eure Hilfe
Gruß
Mucci
|
|
|
|
Hallo,
> ich bin neu hier und kein wirkliches Programmier/Mathegenie
Dann willkommen und keine Angst, Genie muss man nicht sein...
Ganz klar ist mir das Aussehen der beiden Tabellen nicht, denn ich verstehe nicht ganz, wie du die Monats- mit den Jahresdaten kombinieren möchtest (vielleicht mal ein kleines Beispiel mit Tabellen A und B vorher und Tabelle C nachher?), aber das Verzwölffachen jeder Zeile der Matrix M erreichst du per:
M = kron(M, ones(12,1));
Falls du das noch etwas näher erläuterst, habe ich vielleicht eine effizientere Idee..
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 21:55 So 07.01.2007 | Autor: | mucruler |
Vielen Dank für die Rasche Antwort.
Also nochmal etwas ausführlicher
Tabelle A (monatsdaten):
ID DATE KURS1
001 1.1.2001 34,5
001 1.2.2001 35,6
.
.
001 1.12.2001 40,3
001 1.1.2002 39,0
...
001 1.12.2006 45,4
002 1.1.2001 233,3
Tabelle B (jährliche Daten)
ID DATE KURS 2
001 1.1.2001 11,3
001 1.1.2002 14,3
.
.
001 1.1.2006 7,4
002 1.1.2001 301,2
So und Das Ergebnis soll in etwa so aussehen
Tabelle C
ID DATE KURS1 KURS2
001 1.1.2001 34,5 11,3
001 1.2.2001 35,6 11,3
...
001 1.12.2001 40,3 11,3
..
001 1.12.2006 45,4 7,4
..
002 1.1.2001 233.3 301,2
Also Kurs2 ist dann einfach das ganze Jahr lang gleich
ich weis das ist jetzt vielleicht etwas komplex (für mich zumindest).
Deshalb brauch ich ja eure hilfe, damit das klappt.
1000 Dank
Mucci
|
|
|
|
|
Hallo,
dann ergibt sich C also, indem man A nimmt und um eine Spalte erweitert, die sich aus der letzten Spalte von B durch "Verzwölffachung" ergibt.
Das geht mit:
C = [A kron(B(:,end), ones(12,1))];
Hier sehen wir, dann C aus den Matrizen A und kron(...) zusammengesetzt wird. Die Funktion kron erzeugt eine Matrix, die sich durch Multiplikation jedes Elements der ersten Matrix mit der zweiten Matrix ergibt.
Ansonsten kannst du mal in der Hilfe danach suchen, falls es dich näher interessiert.
Gruß
Martin
|
|
|
|
|
wow danke,
ich werd das morgen mal checken.
danke schon mal
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 02:20 Mi 10.01.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|