繁体   English   中英

Matlab从函数调用函数

[英]Matlab call a function from a function

我有两个功能:

function [] = func_one()
     S.pb = uicontrol('style','push','unit','pix','posit',[20 20 260 30],
                      'string','Print Choices','callback',{@func_two,S});

我有第二个功能:

   function [a] = func_two(varargin)
       a = 'alon';
   end

我想func_one返回变量afunc_two 我该怎么办?

我试过了:

 function [a] = func_one()

但是我想我必须对'callback'做些操作,{@ func_two,S})

谢谢你们!

如您所说,如果您希望func_one返回func_one中的值afunc_two使用回调的最简单方法是:

function [a] = func_one()
     S.pb = uicontrol('style','push','unit','pix','posit',[20 20 260 30],
                      'string','Print Choices');

     a = func_two()

上面将允许您说运行a=func_onea将是字符串'alon'

如果您确实确实希望func_two()是按钮的回调,并且希望在func_one (调用func_two的函数)的工作区中分配a='alon'func_two其放入func_two

assignin('caller','a',a)

而且,如果两者都不是您想要的,那么也许可以指明为什么要func_one返回func_two返回的内容-例如您希望与GUI进行的确切交互以及它与实际体验有何不同。

如果您以编程方式设计GUI,建议您使用嵌套函数来共享数据 例:

function IncrementExample()
    x = 0;
    uicontrol('Style','pushbutton', 'String','(0)', ...
        'Callback',@callback);

    function callback(o,e)
        %# you can access the variable x in here
        x = x + 1;

        %# update button text
        set(o, 'String',sprintf('(%d)',x))
        drawnow
    end
end

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM