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

Funktion mehrmals aufrufen mit veränderten Input-Parameter

 

daniel1602
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2014, 14:59     Titel: Funktion mehrmals aufrufen mit veränderten Input-Parameter
  Antworten mit Zitat      
function [alfa_S,gamma_S,Goh]= sonnenstand(jahr,zeitzone,stunde,laenge,breite)

folgende Funktion würde ich gerne für die Input-Variable stunde von 1 : 8760 durchlaufen lassen und jeweils die Output-Parameter speichern.

Bin absoluter Matlab-Neuling und wäre sehr dankbar für Hilfe

Dankeschön
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 10.12.2014, 19:07     Titel:
  Antworten mit Zitat      
eine möglcihkeit wäre es zb die funktion innerhalb einer for schleife aufzurufen. alternativ dazu könnte man mit einer anonymen funktuin und arrayfun arbeiten oder falls die funktion das unterstützt kann man ihr auch gleich einen vektor als input variable übergeben. das hängt von der funktion ab.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
daniel1602
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2014, 12:48     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle Antwort!

Ich habs jetzt mit einer for-Schleife gelöst, jedoch wird mir nur die letzte Schleifenberechnung im Workspace gespeichert.

Wie kann ich denn die Ergebnisse einer jeden Schleife speichern?

Danke!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 11.12.2014, 12:52     Titel:
  Antworten mit Zitat      
Code:
for k=1:10
x(k)=f(igendwas(k))
end

so in der art
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
daniel1602
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2014, 13:27     Titel:
  Antworten mit Zitat      
Code:
for stunde = 1:0.25:8760
[alfa_S,gamma_S,Goh]=sonnenstand(2013,1,stunde,9.30,51.19)
x(stunde)=f(sonnenstand(stunde))
end

alfa_S =

   17.9634


gamma_S =

  -61.2974


Goh =

     0

Error using sonnenstand (line 30)
Not enough input arguments.
 

edit winkow: code umgebung eingeführt
Private Nachricht senden Benutzer-Profile anzeigen
 
daniel1602
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2014, 13:30     Titel:
  Antworten mit Zitat      
sorry, aber ich kriegs einfach nicht hin
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 11.12.2014, 14:12     Titel:
  Antworten mit Zitat      
hallo
bitte benutze die code umgebung wenn du code postest
Code:
[alfa_S,gamma_S,Goh]=sonnenstand(2013,1,stunde,9.30,51.19)
dieser aufruf ist noch richtig. bringt dir aber nix weil du nicht das berücksichtigst was ich oben geschrieben habe,
Code:
x(stunde)=f(sonnenstand(stunde))

das macht sehr wenig sinn
zuerstmal benutzt du stunde als index was zwar vom prinziep her dem entspricht was ich oben geschrieben habe allerdings klappt das nicht da der index immer positiv ganzzahlig seien muss.. ist ja auch logisch. was soll das 2,5 te element eines vekors sein?
danach versuchst du die funktion f aufzurfen die es bei dir garnicht giebt und dann die funktion sonnenstand mit nur einem parameter anstatt der erforderlichen 5...
das siht allgemein für mich nicht so aus als würdest du wissen was du da machst Smile kann dir da nur das grundlagen kapitel von matlab und die getting startet dinger empfehlen.

Code:

 stunde = 1:0.25:8760
for for k=1:numel(stunde)
[alfa_S(k),gamma_S(k),Goh(k)]=sonnenstand(2013,1,stunde(k),9.30,51.19)
end

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
daniel1602
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2014, 14:15     Titel:
  Antworten mit Zitat      
Da hast du definitiv recht!

Aber ich hab es halt jetzt schon mal gebraucht...

Vielen Dank für die Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen
 
daniel1602
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2014, 16:37     Titel:
  Antworten mit Zitat      
Code:
for for k=1:numel(stunde)
    |
Error: Illegal use of reserved keyword "for".
 


kannst du mir trotzdem bitte erklären, was der Fehler bedeutet...
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 11.12.2014, 16:54     Titel:
  Antworten mit Zitat      
ja. das mir da beim copy paste ein tipfehler unterlaufen ist. da gehört natürlich nur ein for hin...
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
daniel1602
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2014, 17:33     Titel:
  Antworten mit Zitat      
hmm, das scheint auf eine Endlosschleife rauszulaufen...

Gibt es da denn nichts einfacheres? Ich möchte ja nur die Inputvariable Stunde ändern, damit ich für jede Stunde des Jahres die Outputvariablen
[alfa_S,gamma_S,Goh] erhalte?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 11.12.2014, 18:17     Titel:
  Antworten mit Zitat      
Zitat:
hmm, das scheint auf eine Endlosschleife rauszulaufen...
wie kommst du darauf ?
Code:
siht für mich nicht nach einer endlos schleife aus.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
daniel1602
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2014, 18:25     Titel:
  Antworten mit Zitat      
naja weil, wenn ich den Befehl so eingebe, Matalb nicht aufhört zu rechnen.

Obwohl ich ja lediglich 8760*4*3 Ausgabewerte bekommen sollte? Also für jede 1/4 Stunde eine Jahres die Werte von alfa_S, gamma_S und Goh
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 11.12.2014, 19:02     Titel:
  Antworten mit Zitat      
wie lange dauert denn eine berechnung ? nur weil matlab nicht in der von dir erwarteten zeit vertig wird heist das ja nicht das er endlos rechnet.
prä-allokation der ausgabe variablen könnte die rechenzeit verkürzen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
daniel1602
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2014, 19:07     Titel:
  Antworten mit Zitat      
Nein nicht die Rechenzeit ist mein Problem, sondern was berechnet wird...
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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 - 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.