How to take variable number of inputs arugments and return their sum

4 views (last 30 days)
I am trying to write a functin addmany.m that takes zero or more numbers as a variable number of input arguments and returns the sum of its input arguments. I am trying to use the narargin and varargin commands. I have the following code written:
function [y] = main(varargin)
%This function will take zero or more numbers as a variable number of input
%arguments and returns the sum of its input arguments.
switch nargin
case 0
disp('0 inputs given')
alpha = 10 %default value
beta = 10 %default value
case 1
disp('1 inputs given')
alpha = varargin{1}
beta = 10 %default value
case 2
disp('2 inputs given')
alpha = varargin{1}
beta = varargin{2}
otherwise
error('Unexpected inputs')
end
y= alpha + beta;
I am trying to get the following result Input is 1,10,100 Output is 111.
If you could please tell me which line/part is wrong and what it should be, I would appreciate it

Accepted Answer

Image Analyst
Image Analyst on 29 Oct 2013
Try this:
function theSum = AddMany(varargin)
theSum = []; % Initialize
if nargin == 0
uiwait(warndlg('Please input 1 or more numbers'));
return;
end
fprintf('Number of arguments: %d\n',nargin);
celldisp(varargin)
inputNumbers = cell2mat(deal(varargin))
theSum = sum(inputNumbers);
  13 Comments
Daniel Shub
Daniel Shub on 29 Oct 2013
I am pretty sure with squiggly brackets {} you get an array of doubles and with smooth brackets () you get a cell array. So with {} it seems to work
x = {1, 2, 3};
sum([x{:}])

Sign in to comment.

More Answers (0)

Categories

Find more on Environment and Settings in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!