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

Fakultät mit Hilfe einer Funktion berechnen

 

Tymo
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 21.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.08.2012, 17:24     Titel: Fakultät mit Hilfe einer Funktion berechnen
  Antworten mit Zitat      
Ich habe bereits ein Programm zur Berechnung der Fakultät geschrieben.
Code:
n = input('Dieses Programm berechnet die Fakultät von n, geben sie n an: ')
n_fakultaet = 1;
for i = 1:n
    n_fakultaet = i * n_fakultaet;
end
n_fakultaet


Nun möchte ich aber die Fakultät mit Hilfe einer eigenen Funktion berechnen. So dass ich es immer aufrufen kann.

Kann mir jemand nen Ansatz geben wie das zu machen ist?

edit: BITTE NICHT POSTEN, PROBLEM IST GELÖST! THEMA BITTE LÖSCHEN WENNS GEHT
Private Nachricht senden Benutzer-Profile anzeigen


weird

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2013, 12:53     Titel: function
  Antworten mit Zitat      
Hallo ist mein erster Beitrag in diesem Forum, also entschuldige bitte, falls die Antwort nicht direkt zur Lösung führt.

Du solltest dich mit dem befehl "function" vertraut machen.

Hierbei speicherst du in einem neuem m-file deine function ab, wobei du sie in ein Konstrukt folgender Form einbettest

Code:
function [Ausgabeparamter] = functionname(eingabeparameter)
   %code
end


In deinem Fall also
Code:
function [n_fakultaet]=fakultaet(n)

 n_fakultaet = 1;

 for i = 1:n
    n_fakultaet = i * n_fakultaet;
 end

end


Der Aufruf erfolgt dann im Hauptprogramm über:
Code:
a = input('Dieses Programm berechnet die Fakultät von n, geben sie n an: ')

fak_a=fakultaet(a);


Achtung!!!
Die Funktion muss sich im selben Ordner befinden, wie das Hauptprogramm und muss/soll den gleichen Namen tragen wie deine Funktion.



Für das ganze Global einzubinden muss du noch ein bisschen im Forum stöbern, denn das ist nicht so einfach zu erklären. Zudem würde ich die Funktionen dahingehend verbessern, dass sie vektorisiert (in Mtalab sollte man weniger for-schleife benutzen und mehr auf Matlab optimierte Befehle wie Matrizen Rechnung und Vektorrechnungen zurückgreifen) ist und für eine beliebige Anzahl an n-s in Form von Matrizen und Vektoren gilt. Außerdem musst du Fallunterscheidungen machen, denn die Fälle n=0 oder n<0 sind nicht abgefangen.


Gruß

weird

http://www.mathworks.de/de/help/matlab/ref/function.html

[EDITED, Jan, Bitte Code-Umgebung benutzen - Danke!]
 
Friede

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2013, 11:42     Titel: Ohne Schleife
  Antworten mit Zitat      
Man kann das ganze Problem, etwas um die Ecke gedacht, auch ohne Schleife lösen, oder ("n" Element N)?

Code:

function [ x ] = fuck( n )
%Berechnet die Fakultät von "n"
A=(1:n);
x=prod(A);
end
 


Das ist mein erster Beitrag, wenn er fehlerhaft seien sollte bitte ich um Nachsicht Wink

Gruß
Friede
 
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 - 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.