将Varargin传递给fprintf

时间:2013-08-10 14:10:33

标签: matlab variadic-functions printf

有没有办法在循环中将varargin中的输入传递给fprintf

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

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

如果输入为name1 name2name3,我希望输出循环:

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

fprintf无法接收单元格输入,将varargin更改为varargin{:}(使其成为单独的列表)并不是我想要的,因为它没有将varargin输入到单独的循环中。

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

1 个答案:

答案 0 :(得分:0)

当您使用for i = varargin时,i会对varargin的元素进行迭代,因此您只需将varargin语句中的fprintf更改为i即可}

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

顺便说一下,it is recommended避免在MATLAB中使用ij作为变量。