WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Matritzen Zusammenfügen (als Schleife)

 

Kai12365
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 15.04.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.04.2019, 08:25     Titel: Matritzen Zusammenfügen (als Schleife)
  Antworten mit Zitat      
Guten Morgen,

ich bin neu hier im Forum und hoffe, dass ich vielen Leuten helfen kann, aber auch meine ungeklärten Probleme gelöst werden. Smile

Ich bin auch noch nicht so lange mit Matlab unterwegs, daher bitte ich es zu entschuldigen, falls ich zu einfache Fragen stelle.

Ich habe eine (mxm)-Matrix X und eine (nxn)-Matrix Y und ich möchte nun jedes Element x_{ij} mit der kompletten Matrix Y multiplizieren, sodass ich als Ergebnis eine (m*n x m*n) - Matrix habe. Es soll also die folgende Gestalt haben:

x_11* Y ......... x_1m*Y
. .
. .
. .
x_m1*Y ......... x_mm*Y


Das kleine x_m1 steht für das Element x aus der m-ten Zeile und der 1. Spalte der Matrix X. Ich hoffe, dass ich mich unmissverständlich ausgedrückt habe und ihr mein Problem versteht. Es wäre super wenn man das als Schleife implementiert, weil ich immer andere ziemlich große Matritzen X und Y betrachten mag.
Es muss ja irgendwie gehen mit
for i:size(X,1)
merge = ....
end
Aber ich habe keine weitere Ideen.

Liebe Grüße,

Kai
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.04.2019, 09:45     Titel:
  Antworten mit Zitat      
Hallo,

Code:
merge = cell(size(X));
for k1 = 1:size(X,1)
for k2 = 1:size(X,1)
merge{k1,k2} = X(k1,k2) * Y;
end
end


… aber darauf achten, dass das bei großen Matrizen schnell recht groß wird.
Viel mehr als größenordnungsmäßig 100x100 sollte man da nicht machen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Kai12365
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 15.04.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.04.2019, 15:40     Titel:
  Antworten mit Zitat      
Guten Tag Harald,

das sieht ja super aus und funktioniert auch tadellos. Vielen Dank für deine Hilfe.
Wie bekomme ich es hin, dass er mir direkt die Werte ausgibt. Ich habe das ganze in einer Funktion geschrieben und es sieht so aus :
Code:
function merge = matrix(T,Y)


 merge = cell(size(Y));
for k1 = 1:size(Y,1)
for k2 = 1:size(Y,1)
merge{k1,k2} = Y(k1,k2) * T;
end
end


end


Und das Ergebnis sieht jetzt so aus:

Code:
4x4 double   4x4 double   4x4 double
4x4 double   4x4 double   4x4 double
4x4 double   4x4 double   4x4 double


Ich hätte aber ganz gerne die Werte, die in dem 4x4 double jeweils sind zu stehen. Sodass ich dann eine 12x12 Matrix habe, wo ich direkt jeden Wert sehe. Weißt du wie ich das meine ?

Liebe Grüße vom Kai
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.04.2019, 16:21     Titel:
  Antworten mit Zitat      
Hallo,

dann am Ende

Code:


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Kai12365
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 15.04.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.04.2019, 16:27     Titel:
  Antworten mit Zitat      
Perfekt !!!
Du bist super, danke !!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.