在xcos / scicos中包含一个Scilab函数/脚本作为块

时间:2019-02-19 10:56:53

标签: scilab xcos

正如标题所述,我想包含一个块,在给定某些输入的情况下,我可以运行scilab表达式/函数/脚本。我可以看到xcos / scicos可以包括C,Fortran和Modelica。有一个表达式块:

  

enter image description here

但是the functions的功能非常有限:

  

sin,cos,tan,exp,log,sinh,cosh,tanh,int,round,ceil,floor,sign,abs,max,min,asin,acos,atan,asinh,acosh,atanh,atan2,log10

例如,如果我想求解ax^2+bx+c=d的二阶方程,则没有sqrtpower / ^运算符/函数!理想情况下,我只想运行一个Scilab脚本/函数就可以拥有完全的自由。如果您能帮助我知道xcos还是scicos中是否存在这样的障碍,将不胜感激。

1 个答案:

答案 0 :(得分:0)

感谢Rupak and Anuradha from Spoken-Tutorial IIT Bombay我找到了解决方案。创建一个Scilab函数,如下:

function [y1, y2, ...] = myFunction(u1, u2, ...)
    // some commands ...
    yi = function(u1, u2, ...);
endfunction

,并将其另存为myFunction.sci在您喜欢的位置。

然后(在编辑器中)执行一次功能或运行命令:

exec('path\to\myFunction.sci', -1)

在控制台中,因此它将在Scilab内存中。

然后在框图中使用Scilab function block

  

enter image description here

通过在块上进行双时钟打开Scilab Multiple Values Request Ctrl + B 或右键单击并选择Block Parameters ...

  

enter image description here

在这里您可以指定输入和输出矩阵的大小。例如,[1,1;2,3]指两个大小分别为1×12×3的矩阵。通过选择OKScilab Input Value Request将打开:

  

enter image description here

在这里您可以放置​​刚定义的函数y=myFunction(u);或使用任何其他Scilab内置语法。现在只需选择OK四次,直到设置完成。

有关更详细的示例,您可以遵循this YouTube tutorial