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)?
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.
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
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 ;)
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')
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 ;)
der Tipp mit transponieren war gut, jetzt sieht es gut aus.
Vielen Dank!
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
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.