|
|
Matrize elementweise Ausgeben lassen |
|
belsebub01 |

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 24.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.09.2010, 16:52
Titel: Matrize elementweise Ausgeben lassen
|
 |
Hallo werte Forumleser,
ich arbeite seit ein paar Tagen mit Matlab und habe folgendes Problem bzw. komme nicht weiter.
Ich möchte Matrizenmultiplikation durchführen und mir die Elemente der neuen Matrize spaltenweise ausgeben lassen. Also insgesamt 9 Spalten. Weiterhin sind die zu multiplizierenden Matrizen von einer freilaufenden Variablen abhängig. D.h. es enstehen in meinem Fall 201 neue Matrizen durch die Matrizenmultiplikation. Am Ende sollen alle ersten Elemente in der ersten Spalte stehen. In der zweiten Spalte dann alle zweiten Elemente untereinander usw.
Hab mal angefangen, haut allerdings nicht hin. Hier ein Auszug meines Skriptes:
%
%Matrizenprodukt:
for
i=1:1:length(daten(:,1))
%für jedes i soll jetzt eine neue Matrix erzeugt werden
% t_p und t_f sind abhängig von i
erg = t_p' * t_f
%Spalte Cxx
m_b(1,1,1) = erg(1)
%Spalte Cxy
m_b(2,2) = erg(2)
%Spalte Cxz
end
Habt ihr vielleicht ne Idee?
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.09.2010, 17:29
Titel: Re: Matrize elementweise Ausgeben lassen
|
 |
Hallo belsebub01,
Um Dein Problem verstehen zu können, müßtest Du erklären was t_p und t_f ist. Woher kommen die 201 Matrizen?
Poste doch mal den Code so weit, dass er Dein Problem vollständig wiedergibt.
Gruß, Jan
|
|
|
belsebub01 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 24.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.09.2010, 10:08
Titel:
|
 |
|
 |
|
Hallo Jan, hier mal etwas mehr aus meinem Skript:
>>clear all
e = [0.01018;0.024;0.034]
e = e / norm(e) * -0.016
daten = csvread('Referenzpunkte.csv',1,1)
%Erzeugen der Transformationsmatrizen auf Grundlage der
%Referenzpunkte
%pel und fem sind erzeugte Elemente einer zuvor eingelesenen csv-Datei mit 201 Zeilen
%diese wurden in 18 Spalten (2x9) abgelegt
%deren Erzeugung habe ich hier nicht mit aufgeführt
for i=1:1:length(daten(:,1))
t_p = [pel(i,1) pel(i,4) pel(i,7);
pel(i,2) pel(i,5) pel(i, ;
pel(i,3) pel(i,6) pel(i,9); ];
t_f = [fem(i,1) fem(i,4) fem(i,7);
fem(i,2) fem(i,5) fem(i, ;
fem(i,3) fem(i,6) fem(i,9); ];
%Erzeugung eines Vektors
work = t_p' * t_f * e
%x-Komponente
e_f(i,1) = work(1)
%y-Komponente
e_f(i,2) = work(2)
%z-Komponente
e_f(i,3) = work(3)
%end
%Bestimmung der Kardanwinkel
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Erzeugen der Bewegungsmatrix
%
%Matrizenprodukt:
for
i=1:1:length(daten(:,1))
%für jedes i (201) soll jetzt eine neue Matrix (aus 2 3x3 Matrizen) erzeugt werden
% t_p und t_f sind abhängig von i
erg = t_p' * t_f
%Spalte Cxx
m_b(1,1,1) = erg(1)
%Spalte Cxy
m_b(2,2) = erg(2)
%Spalte Cxz
end
Ich hoffe nun ist es etwas eindeutiger...
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 26.09.2010, 21:36
Titel:
|
 |
Hallo belsebub01,
ok, jetzt wird das Programm etwas klarer. Was ist nun genau Deine Frage? Kannst Du eine Zeile benennen, die nicht das von Dir gewünschte Ergebnis liefert?
Gruß, Jan
|
|
|
belsebub01 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 24.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.09.2010, 10:02
Titel:
|
 |
|
 |
|
Ich multipliziere die beiden Matrizen mit der Zeile:
erg = t_p' * t_f
daraufhin entsteht eine neue 3x3 Matrize, die ich mir nun spaltenweise nebeneinander ausgeben lassen möchte in folgender Form:
1. Spalte - 1.Zeile/1.Spalte meiner neu erzeugten Matrix
2. Spalte - 2.Zeile/1.Spalte meiner neu erzeugten Matrix
3. Spalte - 3.Zeile/1.Spalte meiner neu erzeugten Matrix
4. Spalte - 1.Zeile/2.Spalte meiner neu erzeugten Matrix
5. Spalte - 2.Zeile/2.Spalte meiner neu erzeugten Matrix
6. Spalte - 3.Zeile/2.Spalte meiner neu erzeugten Matrix
7. Spalte - 1.Zeile/3.Spalte meiner neu erzeugten Matrix
8. Spalte - 2.Zeile/3.Spalte meiner neu erzeugten Matrix
9. Spalte - 3.Zeile/3.Spalte meiner neu erzeugten Matrix
Das hieße es müssten am Ende 9 Spalten sichtbar sein mit 201 Zeilen, da meine Matrizen ja von i abhängen und das bekanntlich bis 201 reicht.
Nun zur Ausgabe:
Ich habs bisher so versucht:
%Spalte 1
m_b(1,1,1) = erg(1)
%Spalte 2
m_b(2,2,1) = erg(2)
%Spalte 3
m_b(3,3,1) =erg(3)
Mir ist aber schnell aufgefallen, das das so nicht funktionieren kann, da ich das i nicht wirklich berücksichtige bei der Ausgabe.
m_b(Spalte bei der Ausgabe, Zeile meiner neu erzeugten Matrize, Spalte meiner neu erzeugten Matrize) ---> wie macht man das richtig? bzw. muss ich zuvor noch eine neue laufende Variable definieren?
Gruß
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 27.09.2010, 15:09
Titel:
|
 |
|
 |
|
Hallo belsebub01,
Ich habe schon in der ersten Zeile Probleme, Dir zu folgen:
Zitat: |
Ich multipliziere die beiden Matrizen mit der Zeile: |
Von welchen "beiden Matrizen" sprichst du hier?
Ist das für die Beantwortung Deines Problems irgendwie wichtig?
Zitat: |
daraufhin entsteht eine neue 3x3 Matrize, die ich mir nun spaltenweise nebeneinander ausgeben lassen möchte in folgender Form:
1. Spalte - 1.Zeile/1.Spalte meiner neu erzeugten Matrix
...
9. Spalte - 3.Zeile/3.Spalte meiner neu erzeugten Matrix
Das hieße es müssten am Ende 9 Spalten sichtbar sein mit 201 Zeilen, da meine Matrizen ja von i abhängen und das bekanntlich bis 201 reicht.
|
Was beudetet "ausgeben lassen"? Möchtest Du ins Commandwindow schreiben? Oder willst Du ein neues Array erzeugen?
Wieso hängt welche Matrix (nicht Matrize) von i ab?
Kannst Du alles überflüssige aus Deinem Beispiel mal rauswerfen? Dann wird es vielleicht klarer. Statt "cvsread" einfach Dummies mit RAND erzeugen.
Vielleicht hilft dir dies, das ist aber nur mal blind in den Nebel gestochert:
Gruß, Jan
|
|
|
|
|
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 - 2025
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.
|
|