Problem with multiple inputs
1 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
Jan
2021-2-15
编辑:Jan
2021-2-15
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Argument Definitions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!