正如标题所说我想要包含一个块,我可以在给定某些输入的情况下运行scilab表达式/函数/脚本。我可以看到xcos / scicos可以包括C,Fortran和Modelica。有一个表达式块:
但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
的二阶方程,没有sqrt
或power
/ ^
运算符/函数!理想情况下,我想运行Scilab脚本/函数,我可以完全自由。如果您能帮助我知道xcos或scicos中是否存在这样的块,我将不胜感激。
感谢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:
通过块上的双时钟打开Scilab Multiple Values Request
,按Ctrl + B或右键单击并选择Block Parameters ...
:
您可以在此处指定输入和输出矩阵的大小。例如,[1,1;2,3]
指的是1×1
和2×3
大小的两个矩阵。通过选择OK
,Scilab Input Value Request
将打开:
在这里你可以把你刚刚定义的函数y=myFunction(u);
或使用任何其他Scilab内置语法。现在只需选择OK
四次,直到设置完成。
有关更详细的示例,您可以关注this YouTube tutorial。