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

Not enough input arguments

 

kathi_1701
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 02.07.18
Wohnort: ---
Version: R2018a
     Beitrag Verfasst am: 02.07.2018, 18:02     Titel: Not enough input arguments
  Antworten mit Zitat      
Hallo zusammen,

ich bin noch recht neu im Bereich MatLab, muss aber eine Simulation für meine Bachelor-Arbeit damit schreiben, habe bis jetzt nur Erfahrungen in der objekt-orientierten Progammierung mit Java.

Ich definiere zu Anfang meines "Hauptprogrammes" eine Matrix und einen Vektor:
Code:

r1= [1;0;0];
e= 1e-3;
epsilon= 0.5*e*[2, 0, 0 ; 0, 1, 0 ; 0, 0, 1];
 


Mit jeder Schleife erhöht sich der Wert von e (deswegen einzeln definiert), und damit ändert sich ja eigentlich auch die Matrix epsilon.

In meinem Hauptprogramm rufe ich dann folgende Zeile auf:
Code:

e_r1= e_r(epsilon, r1);
 


Nachdem ich mein Hauptprogramm beendet habe definiere ich die Funktion e_r:
Code:

function e_r= e_r(epsilon, r)
e_r1= epsilon * r;
e_r= e_r1'*r;
end
 


Sobald ich über den grünen "Run"-Button das Programm ausführen will,
wird mir für die Zeile [e_r1= epsilon*r;] die Fehlermeldung "Not engough input arguments" ausgegeben. Aber ich dachte meine Definitionen weiter oben im Code würden ausreichen, kann mir das jemand erklären und eine Lösung vorschlagen?

Achja, wenn ich das ganze ins Command Window kopiere und dort ausführe, klappt es und ich bekomme plausible Vektoren und Skalare raus. (e_r1 soll ein 1x3 Vektor werden und e_r ein Skalar)

Ich hoffe mal ich bin im richtigen Forum gelandet und dass mir jemand helfen kann Smile
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: 02.07.2018, 19:02     Titel:
  Antworten mit Zitat      
Hallo,

ist alles in einem Fenster oder die Funktion in einem separaten Fenster? Wo ist denn die Schleife?
Es sieht an sich gut aus. Wo das Problem ist, lässt sich ohne weitere Informationen leider nicht sagen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
kathi_1701
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 02.07.18
Wohnort: ---
Version: R2018a
     Beitrag Verfasst am: 02.07.2018, 19:11     Titel:
  Antworten mit Zitat      
Ich habe alles untereinander in den Editor geschrieben, begonnen mit meiner Hauptfunktion (mit function geöffnet und hinterher auch mit end beendet),
danach habe ich nach dem selben Schema (mit function und end) die einzelnen Funktionen bzw. Rechenschritte (z.B. e_r und e_t) definiert, die ich in meinem Hauptprogramm verwende.
Wie ich Funktionen in separaten Fenstern definiere weiß ich gar nicht, aber vielleicht
wäre das ganze dann ein wenig übersichtlicher.

Zu Anfang hab ich meine "Frequenzsterung" implementiert (die steuert meine FOR-Schleife):
Code:
% Steuerung der sich kontinuerlich verändernden Dehnung
e_max= 5e-2;
e= 1e-3;
epsilon= 0.5*e*[2, 0, 0 ; 0, 1, 0 ; 0, 0, 1];
steps= 5000;
f= 0.3;

e_rate= e_max*f/1.25;
delta_e= e_max/steps;
delta_t= delta_e/e_rate;
t_end= 5*e_max/e_rate;
t_0= 0;



Mein Schleife sieht dann folgendermaßen aus:

Code:
for t= t_0:delta_t:t_end
    n= n+1;
   
    e= e+e_rate;
   
    % radiale und tangentiale Dehnung errechnen
    e_r1= e_r(epsilon, r1);
    e_r2= e_r(epsilon, r2);
    e_t1= e_t(epsilon, r1);
    e_t2= e_t(epsilon, r2);
end

Da mein kompletter Code über 250 Zeilen hat, wollte ich den jetzt nicht komplett hier ins Forum kopieren.

Vielen Dank schonmal für die Hilfe
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: 03.07.2018, 07:49     Titel:
  Antworten mit Zitat      
Hallo,

es ist schwierig zu erahnen, wie die einzelnen Codeschnipsel im Zusammenhang zueinander stehen. Ohne ein reproduzierbares Beispiel (gerne abgespeckt) sehe ich keine Möglichkeit zu helfen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
kathi_1701
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 02.07.18
Wohnort: ---
Version: R2018a
     Beitrag Verfasst am: 03.07.2018, 10:01     Titel:
  Antworten mit Zitat      
Hallo,
Im Grunde möchte ich den Vorfaktor einer Matrix (nähmlich mein e in der Matrix epsilon) für jeden Schritt also jeden Durchlauf der For-Schleife verändern. Deshalb rechne ich in jedem Schritt zu dem bestehenden e nochmal die Veränderung e_rate dazu. Das ganze habe ich und dem Kommentar "Steuerung der sich kontinuierlich ändernden Dehnung" implmentiert. (Mit einer bestimmten Anzahl Schritte, Frequenzen etc., das geht aus anderen mathematischen Hintergründen hervor).

Und dann möchte ich für jeden Durchlauf der FOR-Schleife Werte für e_r und e_t herausbekommen (in 2 verschiedene Richtungen r1 und r2, wozu ich zu Beginn Vektoren definiert habe).

Mein Problem scheint bei der Implementierung meiner Funktion e_r zu liegen:
Code:
function e_r= e_r(epsilon, r)
e_rr= epsilon * r;
e_r= e_rr'*r;
end

In der zweiten Zeile kommt ja immer die Fehlermeldung Not enough input arguments, wobei der Code im Command Window (dann ohne function, sondern eingesetzt) ja funktioniert.
Wie kann etwas denn im Comand Window funktionieren und im Editor nicht?

Und auf ein Beispiel lässt sich der Code leider schlecht reduzieren, ich kann höchstens den ganzen Code hier posten.
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: 03.07.2018, 10:12     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Mein Problem scheint bei der Implementierung meiner Funktion e_r zu liegen

Dort sehe ich kein Problem. Typischerweise deutet die Fehlermeldung auf einen falschen Aufruf hin.

Zitat:
Und auf ein Beispiel lässt sich der Code leider schlecht reduzieren, ich kann höchstens den ganzen Code hier posten.

Dann mach das doch bitte, am besten indem du die Datei anhängst. Wie gesagt: ohne reproduzierbares Beispiel werden wir nicht weiterkommen.

Grüße,
Harald
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.