How to properly use varargout and nargout?
    3 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Hi! I need to calculate the bits and nibbles from an input of bytes. If the functions expects two outputs, the it will calcualtion the nibles. But of not, it will calculate the bits. My code looks like this:
function [varargout] = bytes2bits(bytes)
 % write your solution here:
if nargout == 2
    varargout{1} = bytes./8;
    varargout{2} = bytes./32;
else
    varargout{1} = bytes./8;
end
end
and the error that I am getting (from the eudcational platform) is:
Function failed when calculating bits with one output.
3 Commenti
  per isakson
      
      
 il 24 Mar 2020
				No problems here
>> bytes2bits( 64 )
ans =
     8
>> [a1,a2] = bytes2bits( 64 );
>> [a1] = bytes2bits( 64 );
>> 
  Sriram Tadavarty
    
 il 24 Mar 2020
				
      Modificato: Sriram Tadavarty
    
 il 24 Mar 2020
  
			The code seems correct. 
However, you can try this
if nargout == 2
    varargout{1} = bytes./8;
    varargout{2} = bytes./32;
elseif nargout == 1
    varargout{1} = bytes./8;
end
Risposte (0)
Vedere anche
Categorie
				Scopri di più su Argument Definitions in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



