|
|
Variable Werte einer Matlab-Function in Simulink |
|
MatlabErlerner |

Forum-Century
|
 |
Beiträge: 104
|
 |
|
 |
Anmeldedatum: 26.06.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.07.2016, 12:51
Titel: Variable Werte einer Matlab-Function in Simulink
|
 |
|
 |
|
Hallo zusammen,
ich habe folgendes Problem:
Ich habe ein ganz einfaches Simulink-Modell geschrieben, in welchem ich einen Matlab-Function-Block eingebaut habe.
In der Matlabfunktion habe ich eine 'persistent'-Variable definiert (vektor). Diese soll ein Vektor sein, der mit jedem Simulationsschritt um einen weiteren Eintrag (nämlich den neuen Eingangswert) erweitert wird.
Wenn ich das Model laufen lasse, dann bekomme ich allerdings eine Fehlermeldung:
Zitat: |
Size mismatch (size [1 x 1] ~= size [2 x 1]).
The size to the left is the size of the left-hand side of the assignment.
Function 'MATLAB Function' (#254.107.113), line 10, column 1:
"vektor"
Launch diagnostic report.
Component: MATLAB Function | Category: Coder error |
Wie löse ich diese Problem? Habt ihr Tipps bzw. Ideen, wie man das lösen kann?
Anbei habe ich das Model gehangen!
Beste Grüße
Max
Beschreibung: |
|
 Download |
Dateiname: |
Test.slx |
Dateigröße: |
15.25 KB |
Heruntergeladen: |
295 mal |
|
|
|
|
|
MatlabErlerner |
Themenstarter

Forum-Century
|
 |
Beiträge: 104
|
 |
|
 |
Anmeldedatum: 26.06.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.07.2016, 13:40
Titel:
|
 |
Achso, das habe ich vergessen zu erwähnen, wenn es Alternativen gibt (bspw. nicht über persistent-Variable zu gehen), dann bin ich auch dafür offen.
Beste Grüße!
|
|
|
MatlabErlerner |
Themenstarter

Forum-Century
|
 |
Beiträge: 104
|
 |
|
 |
Anmeldedatum: 26.06.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.07.2016, 14:17
Titel:
|
 |
Hat denn niemand eine Idee, ich bräuchte wirklich dringend Hilfe, ich komme einfach nicht weiter
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.07.2016, 16:18
Titel:
|
 |
Hallo,
mir ist keine Möglichkeit bekannt, die Dimension von vektor und y in einem MATLAB Function-Block dynamisch zu ändern.
Laut Forum-Knigge sollte man übrigens 24 Stunden warten, bevor man ein Thema pusht.
http://www.gomatlab.de/knigge-t27147.html
Für schnelle Antworten würde ich einen Anruf beim Technischen Support von MathWorks empfehlen.
Grüße,
Harald
|
|
|
MatlabErlerner |
Themenstarter

Forum-Century
|
 |
Beiträge: 104
|
 |
|
 |
Anmeldedatum: 26.06.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.07.2016, 16:28
Titel:
|
 |
Vielen Dank Harald,
es tut mir Leid, aber ich war/bin total verzweifelt. Hast du denn eine alternative Lösungsmöglichkeit für das skizzierte Problem?
Beste Grüße
Max
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.07.2016, 16:58
Titel:
|
 |
Hallo,
du sammelst ja alle Werte. Sollen diese nun angezeigt, verarbeitet, oder visualisiert werden?
Wenn es um eine Verarbeitung der Daten geht, die nicht dynamisch passieren muss, dann könnte man die Daten in den MATLAB-Workspace schreiben (z.B. über Out-Blöcke) und dort nachverarbeiten.
Kann aber auch sein, dass es andere, mir nicht bekannte Möglichkeiten gibt. Wie gesagt, der Technische Support kann da wohl weiterhelfen.
Alternativ kannst du es noch auf MATLAB Answers versuchen.
Grüße,
Harald
|
|
|
MatlabErlerner |
Themenstarter

Forum-Century
|
 |
Beiträge: 104
|
 |
|
 |
Anmeldedatum: 26.06.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.07.2016, 13:58
Titel:
|
 |
Hallo Harald,
genau ich sammele Werte, um diese dann dynamisch weiterzuverarbeiten. Ich brauch eigentlich immer wieder den im Matlab-Function-Block erstellten Vektor (aus u*9, und vektor) aus dem aktuellen Simulationsschritt im nächsten! Über einen Memory-Block hab ich es leider auch nicht hinbekommen, da sich dieser Vektor ja immer weiter erweitert (eine Grenze würde ich dann noch einbauen, sobald es wie gewünscht funktioniert).
Wie kann ich das sonst hinbekommen. Solltest du wirklich nicht weiter wissen, dann werde ich mal den Support von Matlab kontaktieren!
Grüße
Max
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.07.2016, 16:04
Titel:
|
 |
Hallo,
Zitat: |
Über einen Memory-Block hab ich es leider auch nicht hinbekommen, da sich dieser Vektor ja immer weiter erweitert (eine Grenze würde ich dann noch einbauen, sobald es wie gewünscht funktioniert). |
Du willst also die letzten N Werte sammeln und dann irgendwann den jeweils ältesten ersetzen? Das wäre deutlich leichter als die ursprüngliche Problemstellung:
Es ist übrigens etwas merkwürdig, wenn du drängelst und dir dann 4 Tage mit einer Reaktion Zeit lässt. Da bekommt man den Eindruck, dass es dann wohl doch nicht so dringend war.
Grüße,
Harald
P.S.:
Zitat: |
Solltest du wirklich nicht weiter wissen, dann werde ich mal den Support von Matlab kontaktieren! |
Dass ich evtl. eine Antwort auf eine Frage finden könnte, sollte niemanden davon abhalten, sich vom Technischen Support helfen zu lassen.
|
|
|
|
|
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.
|
|