Mo Logo [Home] [Lexikon] [Aufgaben] [Tests] [Kurse] [Begleitmaterial] [Hinweise] [Mitwirkende] [Publikationen]

Mathematik-Online-Lexikon:

Ein- und Ausgabeparameter von Funktionen


A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Übersicht

Berechnung einer Ausgleichsgeraden abhängig von der Zahl der Eingabeparameter:
  function [m,c]=ausgleichsgerade(X,Y) 
                                       
  if nargin==0                        
    error('Keine Daten vorhanden')     
  end                                  
  if ~exist('Y','var')                 
    Y=X;                               
    X=1:length(Y);                     
  end                                  
                                       
  K=[X(:),ones(length(X),1)]\Y(:);     
                                       
  if nargout>0                         
    m=K(1);                            
  end                                  
  if nargout>1                         
    c=K(2);                           
  end
Analog zur Funktion plot werden bei Übergabe von nur einem Datenvektor diese als $ y$-Werte interpretiert und die $ x$-Werte automatisch generiert. Die Zuweisung der Rückgabewerte erfolgt nur, sofern diese auch beim Aufruf angegeben wurden.

Die Verwendung von exist zur Kontrolle, ob ein Parameter übergeben wurde, besitzt gegenüber der reinen Anzahlkontrolle mit nargin den Vorteil, dass der Code lesbarer und robuster gegenüber Änderungen der Parameterreihenfolge wird.


Ausgaben der Funktion:

  >> X=rand(1,10);                     
  >> Y=rand(1,10);                     
                                       
  >> ausgleichsgerade                  
  ??? Error using ==> ausgleichsgerade 
  Keine Daten vorhanden                
                                       
  >> [m,c]=ausgleichsgerade(Y)         
  m =                                  
      0.0463                           
  c =                                  
      0.2706                           
                                       
  >> m=ausgleichsgerade(X,Y)           
  m =                                  
     -0.7209                           
                                       
  >> ausgleichsgerade(X,Y)
Da beim letzten Aufrüf keine Rückgabevariablen angegeben wurden, besitzt nargout den Wert 0. In diesem Fall werden die Resultate nicht den Variablen m und c zugewiesen, weshalb die Funktionen nichts zurückgibt.
(Autoren: Hörner/Wipper)

[Verweise]

  automatisch erstellt am 12.  1. 2007