0

有没有办法将输入传递vararginfprintf循环内?

例如,如果您有类似的东西:

    function = func_name(var1,varargin)
    for i = varargin
        fprintf('The first name is %s , another is %s',var1,varargin)
    end

如果输入是name1 name2and name3,我希望循环输出:

    The first name is name1, another is name2 
    The first name is name1, another is name3

fprintf不能接受单元格输入,并且更改vararginvarargin{:}(使其成为一个单独的列表)也不是我想要的,因为它不会将varargin输入分离到单独的循环中。

我也不能使用inputname(),因为如果输入是表达式而不是单个变量,Matlab''在调用输入名称时会返回一个空字符串。有没有办法仍然使用inputname()和添加一个计数器到循环中,或者索引varargin输入并循环它们?

4

1 回答 1

0

当您使用 时for i = varargini会遍历 的元素,varargin因此您只需将varargininfprintf语句更改为i

function = func_name(var1,varargin)
for i = varargin
    fprintf('The first name is %s , another is %s',var1,i)
end

顺便说一句,建议您避免在 MATLAB 中使用ij作为变量。

于 2013-08-10T14:35:00.430 回答