フィルターのクリア

Problem with multiple inputs

1 回表示 (過去 30 日間)
Czarek Czarek
Czarek Czarek 2021 年 2 月 15 日
コメント済み: Czarek Czarek 2021 年 2 月 15 日
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

採用された回答

Jan
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
  1 件のコメント
Czarek Czarek
Czarek Czarek 2021 年 2 月 15 日
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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeArgument Definitions についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by