|
|
Zeilenelemente innerhalb einer Matrix multiplizieren |
|
matlabgo |

Forum-Anfänger
|
 |
Beiträge: 48
|
 |
|
 |
Anmeldedatum: 16.08.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.08.2018, 11:11
Titel: Zeilenelemente innerhalb einer Matrix multiplizieren
|
 |
Hallo liebe Community,
bin wieder mal auf eure Unterstützung angewiesen:
die Aufgabe lautet:
Schreiben Sie eine rein schleifenbasierte Funktion map, die für alle Elemente einer als Parameter
übergebenen Matrix A einen folgendermaßen neu berechneten Spaltenvektor b als Rückgabeparameter
zurück gibt. (siehe Anhang)
Hab es versucht erstmal, ohne Funktion zu lösen.
Meine Frage ist, warum sich alles bei mir unter m abspeichert obwohl dies eine laufvariable ist und warum das bei mir nicht die Zeile durchgehend multipliziert.
Würd mich über eine Antwort freuen. Vielen Dank!
Beschreibung: |
|
 Download |
Dateiname: |
Unbenannt2.png |
Dateigröße: |
19.45 KB |
Heruntergeladen: |
255 mal |
|
|
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 17.08.2018, 11:27
Titel:
|
 |
Hi,
Zitat: |
Meine Frage ist, warum sich alles bei mir unter m abspeichert obwohl dies eine laufvariable |
Was meinst du damit? Was wird alles unter m abgespeichert? Wenn ich das bei mir laufen lasse nimmt m bei den einzelnen Schleifendurchläufen 1,2,3,4 (wie vorgebeben) an. Außerdem bekomme ich einen Vektor c (der noch nicht der Aufgabe entspricht), eine Matrix M und deine Schleifen-Variablen k und l.
Wenn du nicht weiter kommst kann ich dir übrigens empfehlen dir mal aufzuschreiben was das Programm Schritt für Schritt machen soll. Das hilft am Anfang oft weiter.
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
matlabgo |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 48
|
 |
|
 |
Anmeldedatum: 16.08.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.08.2018, 12:20
Titel:
|
 |
hey, vielen dank für die schnelle Antwort!
Ich versteh nicht, warum ich als Ausgabe 4 Spaltenvektoren erhalte und warum, meine Schleife die einzigen Elemente miteinander multipliziert.
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 17.08.2018, 12:46
Titel:
|
 |
|
 |
|
Hi,
was für 4 Spaltenvektoren bekommst du denn? Ich bekomme da lediglich einen Vektor
Wenn du dein Code durchgehst macht der folgendes:
Eine Schleife die alle Zeilen durchläuft -> passt
Eine Schleife die alle Spalten durchläuft -> passt
Also muss es am Inhalt der Schleifen liegen:
1. Zeile -> m = 1, k = 1
2. Bei M(l,k) passen die Dimensionen wieder nicht. -> M(k,l) wäre deiner Schleifenzuordnung nach richtig.
3. Spalte 1 -> l = 1:
Du multiplizierst den Wert aus M(1,1) mit dem Wert aus M(1,1) -> also mit sich selbst und speicherst ihn in c(1) ab. -> der berechnete Wert passt schonmal nicht
4. Spalte 2 -> l = 2:
Du multiplizierst den Wert aus M(1,2) mit sich selbst und überschreibst den Wert aus dem Schleifendurchgang davor in c(1). Der Wert aus der vorherigen Berechnung wird nicht mehr berücksichtigt. -> der berechnete Wert passt nicht
Was du machen willst:
- Springe in die 1. Zeile
- Speicher den Wert aus der 1. Spalte M(1,1) in c(1)
- springe in die 2. Spalte und multipliziere den Wert aus c(1) mit dem Wert M(1,2), speicher das Ergebnis in c(1) (der alte Wert wird überschrieben)
- springe in die 3. Spalte und multipliziere den Wert aus c(1) mit dem Wert M(1,3), speicher das Ergebnis in c(1) (der alte Wert wird überschrieben)
- Springe in die 2. Zeile
- Speicher den Wert aus der 1. Spalte M(2,1) in c(2)
- ....
Und das jetzt in Code umsetzen. Deine Schleifen passen schon mal, jetzt muss du nur den Inhalt noch anpassen.
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
matlabgo |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 48
|
 |
|
 |
Anmeldedatum: 16.08.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.08.2018, 13:03
Titel:
|
 |
vielen Dank für deine Mühe, und ich hab auch verstanden wie du das meinst und dementsprechend mein Code geändert:
das letzte Problem ist für mich, wenn ich den ersten Wert mit sich selber multiplizieren und daraufbauend arbeiten möchte.
so wie ich das gemacht habe fluppt das noch nicht ganz.
muss ich die erste Spalte dann immer extern von der Schleife definieren und die Schleife damit arbeiten lassen `?
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 17.08.2018, 13:08
Titel:
|
 |
Genau, die erste Spalte definierst du vor der "Spalten-Schleife" und durchläufst die dann nur noch von 2. Spalte bis Ende.
Folgende Zeile gehört da aber nicht mehr hin.
Ansonsten sieht das schon ganz gut aus.
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
matlabgo |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 48
|
 |
|
 |
Anmeldedatum: 16.08.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.08.2018, 13:13
Titel:
|
 |
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 17.08.2018, 13:17
Titel:
|
 |
Kleiner Tipp noch:
Du kannst das m auch durch das k ersetzen, da m in dem Beispiel ja dem Zähler k der Zeilen-Schleife entspricht:
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
|
|
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.
|
|