【问题标题】:Passing Varargin into fprintf将 Varargin 传递给 fprintf
【发布时间】:2013-08-10 14:10:32
【问题描述】:

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

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

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

如果输入是name1name2和name3,我希望循环输出:

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

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

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

【问题讨论】:

    标签: matlab variadic-functions printf


    【解决方案1】:

    当您使用for i = varargin 时,i 会遍历varargin 的元素,因此您只需将fprintf 语句中的varargin 更改为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 中使用 i 和 j 作为变量。

    【讨论】:

      猜你喜欢
      • 2014-03-09
      • 2018-02-12
      • 2012-02-24
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 2014-09-28
      • 2019-12-21
      • 2017-01-25
      相关资源
      最近更新 更多