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

For-Schleifen innerhalb einer Funktion in Simulink

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2015, 17:11     Titel: For-Schleifen innerhalb einer Funktion in Simulink
  Antworten mit Zitat      
Zur Simulation, ich habe einen fcn-Block, in den als Beispiel eine 3x3-Matrix eingelesen wird, als Ausgang soll ebenfalls eine 3x3-Matrix ausgegeben werden. Momentan klappt dies auch soweit, jedoch wird die Funktion scheinbar auf alle Zellen der Matrix ausgeführt.

Ich würde gerne folgendes in die Funktion einbauen, die eingelesene Matrix ist A, die ausgegebene Matrix soll B sein
Code:
function B = fcn(A)
for i=1:size(A,1)
for j=1:size(A,2)
B(i,j)=A(i,j)+A(i+1,j)+A(i,j+1)
end
end
B(i,j)=B;


Soweit klappt es, bis ich die Ausgangsvariable angeben muss. B wird akzeptiert, B(i,j) jedoch nicht.
Wenn ich die richtige Fehlermeldung sehe, dann spuckt mir Simulink folgende Meldung aus:
Code:

"Undefined function or variable 'B'. The first assignment to a local variable determines its class."


Weiß jemand, wo der Fehler liegt? Ich bin momentan etwas ratlos,m da ich mich zudem mit Simulink nicht sonderlich gut auskenne...


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2015, 11:10     Titel:
  Antworten mit Zitat      
Bzw. weiß jemand wie man in einer Matrix die Positionen (i,j) oder (i,j+1) abrufen kann?

Im Matlab selbst ist das alles kein PRoblem, nur Simulink verarbeitet derartige Codeangaben wohl etwas anders als Matlab...
 
rien

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.04.2015, 13:21     Titel:
  Antworten mit Zitat      
B bestimmt deine Ausgangsgrösse deiner Funktion, diese Dimension wird pro Itterationsschritt in Simulink 1 mal pro Block gesetzt, du änderst diese mit deinem Code mehrmals pro Schritt.

Ersetzte B(i,j) durch C(i,j) und es sollte gehen.
 
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.