【问题标题】:Retrieve name of output arguments within a function在函数中检索输出参数的名称
【发布时间】:2015-09-15 19:10:04
【问题描述】:

可以使用函数inputname 检索在调用当前执行函数时传递的工作区变量名称。但是,是否有任何等效的函数来获取在调用当前正在执行的函数时指定的输出参数的名称?

假设我有以下功能:

function [a,b,c] = test(x)
disp([ouputname(1),ouputname(2),ouputname(3)])
end

运行此函数时:

[my,name,is] = test(x)

预期的结果应该是:

mynameis

【问题讨论】:

    标签: matlab


    【解决方案1】:

    只是不,没有。

    复杂:Matlab 代码是在运行时“编译”的,在返回test(x) 的结果之前,它无法知道[my,name,is]


    解决方法:如果要确保函数中使用的字符串等于返回到工作区的变量,可以使用assignin 执行以下操作:

    function test(x, varnames)
    
    a = 1;
    outputname{1} = varnames{1};
    assigin('base', outputname{1}, a)
    
    ...
    
    c = 3;
    outputname{3} = varnames{3};
    assigin('base', outputname{3}, c)
    
    disp([outputname{:}])
    
    end
    

    然后像这样调用你的函数:

    text(x,{'my','name','is'})
    

    之后,您的工作区和函数输出中就会有这些变量:

    “我的名字”

    【讨论】:

      猜你喜欢
      • 2012-05-12
      • 2017-12-16
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多