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

Binomialkoeffizient anpassen

 

Pythagoras79
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 67
Anmeldedatum: 31.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2010, 11:34     Titel: Binomialkoeffizient anpassen
  Antworten mit Zitat      
Hallo, hab hier ein Programm, welches den Binomialkoeffizienten berechnet. Möchte dieses in der Form anpassen, dass für Werte von m kleiner als 0 und größer als n, das Ergebnis 0 ist.

Also 6 über -4 =0 und 6 über 7 auch null, die Werte m=0 bis m=n sollen ganz normal berechnet werden. Das Programm bisher gibt für die Entsprechenden Werte eine Fehlermeldung aus!

Code:
function k= choose(n, m)
%
% choose(n,m) is the number of ways of choosing m objects from n distinct
% objects.  The simplest definition of choose(n,m) is n! / (m! * (n-m)!).
% The algorithm used here is somewhat less susceptible to overflow, and is
% faster than Matlab's builtin nchoosek function.
%
% Dr. Phillip M. Feldman   21 April 2006


% Check input arguments:

if (nargin ~= 2)
   error('choose requires 2 arguments.');
end

if (m < 0 | m > n)
   error('m (second argument) must be between 0 and n, inclusive.');
end

% The simplest definition of choose(n,m) is n! / (m! * (n-m)!), but the
% following algorithm is somewhat less susceptible to overflow.

if (m >= n-m)
   k= prod(m+1:n) / prod(2:n-m);

else
   k= prod(n-m+1:n) / prod(2:m);
end


Danke schon vorab...
Private Nachricht senden Benutzer-Profile anzeigen


Pythagoras79
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 67
Anmeldedatum: 31.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2010, 13:12     Titel: Vereinfachte Frage
  Antworten mit Zitat      
im code choose.m existiert die zeile...

Code:
if (m < 0 | m > n)
    error('m (second argument) must be between 0 and n, inclusive.');
end


ich will dass das Programm aber nicht die Meldung bringt, sondern für diese Fälle eine Null ausgibt.

Hab mal probiert k=0; anstatt error...
zu schreiben, dann gibt er mir aber immer eine 1 aus!

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Pythagoras79
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 67
Anmeldedatum: 31.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2010, 15:17     Titel: Lösung gefunden!
  Antworten mit Zitat      
Hab die Lösung selbst gefunden...
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 - 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.