正如标题所述,我想包含一个块,在给定某些输入的情况下,我可以运行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中是否存在这样的障碍,将不胜感激。
答案 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:
通过在块上进行双时钟打开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。