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 Multiply berechnet falsch

 

clin
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 27.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2018, 09:15     Titel: Matrix Multiply berechnet falsch
  Antworten mit Zitat      
Hallo,
Ich habe eine [3x5]-Matrix und einen [5x1]-Vektor und die möchte ich in Simulink multiplizieren. Jedoch kommt dabei ein komplett falsches Ergebnis heraus. Wo ist mein Fehler bei dieser Multiplikation (Matrix Multiply, Product1, grün markiert)?

Input Parameter: psi_HR_Punkt = 3 (Zeile 41) psi_HL_Punkt = 5 (Zeile 42)

Ergebnis in Simulink; in Simulink ist es am Display2 zu sehen. [-2.776e-17; 0; -5.551e-17]
Ergebnis in Matlab; Im Command Window ist es die Variable ("M"). (1.0e-04): [-0.0680; 0.1365; -0.2385]


Ich habe noch eine weitere Frage, die aber nichts mit dem Thema zu tun hat. Und zwar soll das Verhalten geplottet werden. Jedoch werden mir nicht die Umrisse angezeigt, sondern nur die Punkte, die berechnet wurden. Wie ich es gern hätte zeigt das Soll-Bild im Anhang.

Simulation_Simulink.slx
 Beschreibung:

Download
 Dateiname:  Simulation_Simulink.slx
 Dateigröße:  29.98 KB
 Heruntergeladen:  302 mal
Ist.PNG
 Beschreibung:

Download
 Dateiname:  Ist.PNG
 Dateigröße:  13 KB
 Heruntergeladen:  337 mal
Soll.PNG
 Beschreibung:

Download
 Dateiname:  Soll.PNG
 Dateigröße:  23.26 KB
 Heruntergeladen:  350 mal
Simulation_Matlab.m
 Beschreibung:

Download
 Dateiname:  Simulation_Matlab.m
 Dateigröße:  1.63 KB
 Heruntergeladen:  323 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: 27.10.2018, 12:07     Titel:
  Antworten mit Zitat      
Hallo,

wie kommen denn die Variablen in MATLAB zustande?
Wenn ich mir mit "To Workspace" die Eingänge des Matrix Multiply-Blocks hole, dann haben die Einträge teilweise nicht nur 4 Stellen, sondern 15. Wenn ich mit diesen Werten nun die Matrixmultiplikation in MATLAB rechnen lasse, erhalte ich
-1.4237e-17
1.6278e-17
1.1477e-17
Im Rahmen numerischer Ungenauigkeiten ergeben also sowohl MATLAB als auch Simulink [0;0;0].

Der Zusammenhang zwischen Ist- und Sollabbildung ist mir nicht klar.

Wenn du Rechtecke zeichnen möchtest, kannst du entweder die rectangle-Funktion nutzen oder
Code:
plot([x1, x2, x3, x4, x1], [y1, y2, y3, y4, y1])


Grüße,
Harald

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
 
clin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 27.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2018, 13:33     Titel:
  Antworten mit Zitat      
Hallo Harald,

mein ursprüngliches Problem konnte ich anscheinend mathematisch anders lösen.


Bezüglich den Abbildungen. Ich möchte bei jedem Rechenschritt das Rechteck angezeigt bekommen. Aktuell werden mir nur die berechneten Punkte angezeigt. Die Plotfunktion ist bereits im Code integriert. Deinen Vorschlag mit "rectangle" habe ich versucht, komme ich aber nicht so gut zurecht.

Code:
x = [(HL_gel.Data(:,1)) (HR_gel.Data(:,1)) (VR_gel.Data(:,1)) (VL_gel.Data(:,1)) (HL_gel.Data(:,1))];
y = [(HL_gel.Data(:,2)) (HR_gel.Data(:,2)) (VR_gel.Data(:,2)) (VL_gel.Data(:,2)) (HL_gel.Data(:,2))];
plot(x,y,'-b')
 
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: 28.10.2018, 15:05     Titel:
  Antworten mit Zitat      
Hallo,

meine Vermutung wäre, dass die Punkte nur nicht in der richtigen Reihenfolge verbunden werden. Versuch mal, x und y zu transponieren. Ansonsten wirklich in einer for-Schleife mit plot wie gezeigt die einzelnen Rechtecke darstellen.

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
 
clin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 27.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2018, 17:56     Titel:
  Antworten mit Zitat      
Hallo,

der Tipp mit transponieren war gut, jetzt sieht es gut aus.

Vielen Dank!
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.