Problem with multiple inputs

function varargout = Untitled(a,varargin)
varargout{1}=0;
if (a=='+')
disp('Add');
for i=1:nargin
varargout{1} = varargout{1} + varargin{i};
i=i+1;
disp(varargout{1});
end
end
end
when i put commadn in cosole program add number in loop, but next throw error
>> Untitled('+',3,3,4,10)
Add
3
6
10
20
Index exceeds the number of array elements (4).
Error in Untitled (line 11)
varargout{1} = varargout{1} + varargin{i};
And when i put disp(varargout{1}) outside loop program dont throw outputs. pls help

 Risposta accettata

Jan
Jan il 15 Feb 2021
Modificato: Jan il 15 Feb 2021
for i=1:nargin
nargin is the number of all inputs. For Untitled(a,varargin) thenumber of inputs is 1 larger than the size of varargin.
Try:
for i = 1:numel(varargin)
% or
for i = 1:nargin - 1
Hint: Omit the "i=i+1", which is useless. The loop counter is increased by the for command. It does not produce an error here, because i is not used after this line, but it is confusing. See
for k = 1:5
fprintf('k = %d\n', k);
k = k + 1000;
fprintf('modificed k = %d\n', k);
end

1 Commento

for i = 1:nargin - 1 this is answer for my question
i figured it out couple minut ago by display nargin on board :p, but thank you very much for help <3

Accedi per commentare.

Più risposte (0)

Categorie

Prodotti

Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by