|
|
Wie werden multidimensionale Arrays mit einem Spaltenvektor |
|
uzcyi |
Forum-Fortgeschrittener
|
|
Beiträge: 66
|
|
|
|
Anmeldedatum: 22.12.15
|
|
|
|
Wohnort: Nähe Pforzheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.04.2017, 13:18
Titel: Wie werden multidimensionale Arrays mit einem Spaltenvektor
|
|
Wie werden multidimensionale Arrays mit einem Spaltenvektor multipliziert ?
Ansatz habe ich schon mal gemacht:
bis hier funktioniert es einwandfrei nun jetzt kommt:
Error using *
Arguments must be 2-D, or at least one argument must be scalar. Use
TIMES (.*) for elementwise multiplication.
Array dimensions must match for binary array op.
bzw:
Error using *
Arguments must be 2-D, or at least one argument must be scalar. Use TIMES (.*) for elementwise multiplication.
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 10.04.2017, 14:02
Titel: Re: Wie werden multidimensionale Arrays mit einem Spaltenvek
|
|
Hallo uzcyi,
Du hast noch nicht erklärt, was Du als Ergebnis bekommen möchtest. Mathematisch ist eine Matrix-Vektor-Multiplikation definiert, bei der die Anzahl der Spalten der Matrix gleich der Anzahl der Zeilen des Vektor sein muss. In Matlab gibt es noch eine elementweise Mutliplikation.
Du könntest per
permute(X, [1,3,2])
aus dem Array eine Matrix machen, dann die Standard-Matrix-Vektor-Multiplikation durchführen und später das Ergebnis wieder per
reshape
aufteilen.
Gruß, Jan
Zuletzt bearbeitet von Jan S am 12.04.2017, 11:17, insgesamt 2-mal bearbeitet
|
|
|
uzcyi |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 66
|
|
|
|
Anmeldedatum: 22.12.15
|
|
|
|
Wohnort: Nähe Pforzheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.04.2017, 18:15
Titel:
|
|
Das möchte haben
C = A(:,:,1:400)*B
dass heißt einen Array mit 1200x1 Vektor sozusagen
im Prinzip könnte ich dies mit einer einfachen For-loop i=1:400 lösen, möchte es jedoch übersichtlicher und vektorisierend zeitsparende damit machen. Jedoch habe ich den nötigen know-how wissen nicht Jan.
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 12.04.2017, 12:05
Titel:
|
|
Hallo uzcyi,
Wenn Du die Schleifen-Methode postest, kann man direkt einen vektorisierten Code vorschlagen, der das gleiche Endergebnis liefert. Wenn man sich aber zunächst ausdenken, muss, was Du bekommen möchtest, ist das umständlich.
Dies wandelt das 3D-Array in eine Matrix um, so dass die Standard-Matrix-Vektor-Multiplikation wieder möglich wird.
Gruß, Jan
|
|
|
uzcyi |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 66
|
|
|
|
Anmeldedatum: 22.12.15
|
|
|
|
Wohnort: Nähe Pforzheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2017, 17:58
Titel:
|
|
Danke Jan
|
|
|
Verschoben: 16.04.2017, 14:57 Uhr von denny Von Objektorientierte Programmierung nach Programmierung |
|
|
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.
|
|