【问题标题】:Scilab pointer functionScilab 指针函数
【发布时间】:2018-02-27 21:28:17
【问题描述】:

我正在将代码从 MATLAB 转换为此处包含的 scilab。

@ 符号在 MATLAB 中用作内存指针,指向函数 tst_callback 的位置。

然而,Scilab 不喜欢这样。 @ 是否有 scilab 等效项?

function test
    sysIDgui(@tst_callback)     
end

function tst_callback()
    disp("Hello Ron")
endfunction

【问题讨论】:

    标签: scilab


    【解决方案1】:

    您要做的是将一个函数作为参数传递给另一个函数。在 Scilab 中,您不需要任何特殊语法。

    自己试试吧。定义这两个函数:

    function y = applyFunction(f,x)
        y = f(x);
    endfunction
    
    function y = double(x)
        y = x * 2;
    endfunction
    

    然后在控制台上测试一下:

    --> applyFunction(double,7)
     ans  =
    
       14.
    

    注意:@ 在 MATLAB 中的主要用途是创建未在单独文件中定义的匿名函数 (see documentation)。至于 Scilab,没有办法创建匿名函数。

    【讨论】:

    • 我看到我在提出这个问题时犯了一个错误。在我的示例中,以下将是一个 *.sci 文件,它将进行计算。在函数 'test' 中,'sysIDgui' 是一个单独的 sci 文件,其中包含所有 uicontrol 布局和格式。 @tst_callback 的目的是让 gui 文件在不同的文件中找到函数并在那里执行它。 function test sysIDgui(@tst_callback) end function tst_callback() disp("Hello Ron") endfunction
    • @TheWenz 现在你让我很困惑,因为我不知道你到底有什么问题。你能编辑你原来的问题吗?
    • 然后你必须加载函数。请参见执行函数。一旦你加载了它,你就可以像往常一样调用它了。
    • 也可以通过引用函数来传递变量吗?如果您也可以帮助我解决我提出的问题here,我将不胜感激
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多