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

Multiplikation zweier Matrizen

 

Nathalie12345678

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2016, 18:15     Titel: Multiplikation zweier Matrizen
  Antworten mit Zitat      
Hallo liebes Forum
Ich muss zwei Matrizen mithilfe zweier for Schleifen multiplizieren, dass am ende eine 2x2 Matrix heraus kommt.

>> A
A =

3 8 2
9 3 1

>> B
B =

8 2
1 6
-7 3

>>
Mein Versuch einfach for M= A*B end einzutippen ist leider kläglich gescheitert, da dann nur die rechte Spalte von B mit der Matrix A multipliziert wurde. (warum auch immer matlab das so macht.

Ich hoffe mir kann jemand helfen.


Nathalie12345678

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2016, 19:35     Titel:
  Antworten mit Zitat      
Code:
C(1,1)=0;    C(1,2)=0;    C(2,1)=0;    C(2,2)=0;
for i=1:2
for k=1:2
for j=1:2
C(i,k)=C(i,k)+A(i,j)+B(j,k);
end
end
end
 

Ich habe das jetzt mal so versucht. Ich bekomme zwar jetzt ergebnisse, allerdings stimmen diese nicht so wirklich. Möglicherweise hat ja jemand eine idee wie ich das verbessern könnte

[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.11.2016, 20:12     Titel:
  Antworten mit Zitat      
Hallo,

wenn du M=A*B ausführst, wird die übliche Matrixmultiplikation berechnet.

In deinem zweiten Versuch sollte zwischen den Elementen von A und B wohl ein * stehen. Das ist aber wie gesagt unnötig, da A*B ja genau das berechnet.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Nathalie12345678

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2016, 20:36     Titel:
  Antworten mit Zitat      
Danke für deine Antwort.
Ich habe das mit dem * statt dem + bereits probiert. Es kommt nur das korrekte Ergebnis raus, wenn bei B die letzten beiden Zahlen 0 sind. Hingegen stimmt das Ergebnis immer wenn ich zwei 2x2 Matritzen miteinander multipliziere.

Mir ist schon klar das ich nur M=A*B eintippen muss um das richtige Ergebnis zu bekommen, doch leider ist das meinem Lektor zu einfach, denn in der Angabe steht explizit drinnen, dass mindestens 2 for schleifen zu verwenden sind.
 
Harald
Forum-Meister

Forum-Meister


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

die j-Schleife muss bis 3 gehen.

Generell würde ich Dimensionen nicht hart reinkodieren, sondern etwas verwenden wie
Code:


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.11.2016, 12:24     Titel: Re: Multiplikation zweier Matrizen
  Antworten mit Zitat      
Hallo Nathalie12345678,

Ein Tipp: Matrix-Multiplikation ist eine der Standard-Hausaufgaben für Numerik-Anfänger. Deshalb wird eine Suche im Internet, z.B. auch in diesem Forum, bestimmt hilfreich sein.

Zitat:
Mein Versuch einfach for M= A*B end einzutippen ist leider kläglich gescheitert, da dann nur die rechte Spalte von B mit der Matrix A multipliziert wurde. (warum auch immer matlab das so macht.

Das ist sehr seltsam. Wozu dient das "for" in "for M= A*B"? "M=A*B" wäre bereits eine Lösung.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Nathalie12345678

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2016, 16:07     Titel:
  Antworten mit Zitat      
Vielen dank Harald, jetzt klappt es einwandfrei Smile
@Jan, ich habe das ganze internet durchforstet, leider konnte ich nichts passendes finden aber mit der hilfe von youtube, meinem skript und dem Harald ist jetzt alles in bester Ordnung und ich kann es abgeben.
LG Nathi
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.11.2016, 13:27     Titel:
  Antworten mit Zitat      
Hallo Nathalie12345678,

Zitat:
ich habe das ganze internet durchforstet, leider konnte ich nichts passendes finden

Ja, das Problem kenne ich. Dabei findet Google z.B. fertigen Code und die Dokumentations von Matlab's builtin-Matrix-Muliplikation gleich auf der ersten Seite, wenn Du nach "Matlab matrix multiplikation" suchst.
Aber das gefundene Youtube-Video gilt ja auch als "im Internet gefunden".

Gruß, Jan
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.