Varargout - How to realize function call
    7 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Dario Walter
      
 le 21 Oct 2019
  
    
    
    
    
    Réponse apportée : Dario Walter
      
 le 1 Nov 2019
            Hey guys,
let us assume the following function:
function [out1,out2,out3]=test(j,k)
out1= nargin;
out2 = j-k;
if out2 == 10
    out3 = 5;
end
end
The function call [val1,val2,val3] = test(10,11) returns an error because c is obviously undefined. How do I make this code run so that out3 is returned when it exists?
Thanks for your help!
1 commentaire
  Guillaume
      
      
 le 21 Oct 2019
				The function call [val1,val2,val3] = test(10,11)
will always require 3 outputs from the function, so test must always return at least 3 outputs for that call to be valid.
That's independent of whether or not the function only returns some outputs under some conditions. 
Réponse acceptée
  Stephen23
      
      
 le 21 Oct 2019
        Simpler:
function [out1,out2,out3]=test(j,k)
out1= nargin;
out2 = j-k;
out3 = [];
...
if out2 == 10
    out3 = 5;
end
end
0 commentaires
Plus de réponses (2)
  per isakson
      
      
 le 21 Oct 2019
        
      Modifié(e) : per isakson
      
      
 le 21 Oct 2019
  
      varargout exercise. Try something like this
function varargout = test( j, k )
    out1= nargin;
    out2 = j-k;
    if out2 == 10
        out3 = 5;
    end
    if exist( 'out3', 'var' ) == 1
        varargout = { out1, out2, out3 };
    else
        varargout = { out1, out2, [] };
    end
end
or
function varargout = test( j, k )
    out1= nargin;
    out2 = j-k;
    if out2 == 10
        out3 = 5;
    else
        out3 = [];
    end
    varargout = { out1, out2, out3 };
end
0 commentaires
Voir également
Catégories
				En savoir plus sur Data Type Identification dans Help Center et File Exchange
			
	Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


