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

Matrix mit Vektor multiplizieren

 

p-schweter
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 04.12.20
Wohnort: Nürnberg
Version: ---
     Beitrag Verfasst am: 04.12.2020, 18:40     Titel: Matrix mit Vektor multiplizieren
  Antworten mit Zitat      
Hallo,

ich habe ein Problem, was wahrscheinlich relativ schnell gelöst werden kann, stehe jedoch auf dem Schlauch und habe im Forum nichts passendes gefunden. Ich verwende Matlab R2018b.

Ich habe eine Matrix mit m Zeilen und n Spalten und einen Vektor mit n Zeilen. Diese möchte ich nun multiplizieren. Beispielsweise sollte für eine 3x2 Matrix und einen 2x1 Vektor das Ergebnis folgendermaßen lauten:

| a11 a12 | .. | b1 | .. | a11*b1 + a12*b2 |
| a21 a22 | x | .... | = | a21*b1 + a22*b2 |
| a31 a32 | .. | b2 | .. | a31*b1 + a32*b2 |

(Die Punkte dienen nur dazu, dass alles einigermaßen auf einer Höhe ist.)

Ich habe mein Problem in Matlab mit einer 8x12 Matrix und einem 12x1 Vektor angehängt.

Wenn ich die Matrix nicht transponiere, also eine 12x8 Matrix habe, zeigt er mir keinen Fehler an, obwohl ein Matrixprodukt eigentlich ja nur definiert ist wenn die Anzahl der Spalten der ersten Matrix, mit der Anzahl der Zeilen der zweiten Matrix übereinstimmt, was in meinem Fall ja gegeben wäre.

Ich hoffe ich konnte das Problem verständlich formulieren. Vielen Dank schonmal.

Grüße

Matlab_Fehler.png
 Beschreibung:

Download
 Dateiname:  Matlab_Fehler.png
 Dateigröße:  25.77 KB
 Heruntergeladen:  292 mal
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: 04.12.2020, 19:17     Titel:
  Antworten mit Zitat      
Hallo,

poste bitte den Code als Text, inkl. hfct. Man mag ja nicht alles abtippen müssen, um das Problem zu reproduzieren.

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
 
p-schweter
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 04.12.20
Wohnort: Nürnberg
Version: ---
     Beitrag Verfasst am: 04.12.2020, 20:10     Titel:
  Antworten mit Zitat      
Hallo,

Danke schonmal für die schnelle Antwort. Hier mein Code

Code:

x = sym('x',[8 1]);             % state vector
u = sym('u',[2 1]);             % control input vector

hfct  = [ x(1)-0.17; -x(1)-0.17; x(5)-0.24; -x(5)-0.24; x(3)-20; -x(3)-20; x(7)-20; -x(7)-20; u(1)-4; -u(1)-4; u(2)-2; -u(2)-2 ];
dim_h = numel(hfct);
sym('vec',[dim_h 1]);

dhdx = transpose(jacobian(hfct,x));
dhdx*vec
 


Gruß
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: 04.12.2020, 20:13     Titel:
  Antworten mit Zitat      
Hallo,

bei dem Code bekomme ich den Fehler
Zitat:
Unrecognized function or variable 'vec'.

Vermutlich hattest du davor irgendwann mal eine Variable vec angelegt. Wenn du das so schreibst:
Code:
vec = sym('vec',[dim_h 1]);

läuft der Code durch.

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
 
p-schweter
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 04.12.20
Wohnort: Nürnberg
Version: ---
     Beitrag Verfasst am: 04.12.2020, 20:23     Titel:
  Antworten mit Zitat      
Hallo,

so hat es funktioniert, vielen Dank.

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