SHOGUN v0.9.0
Eierlegendewollmilchsau 接口

如前如述,SHOGUN为多种语言提供接口。而Eierlegendewollmilchsau (elwms)接口可以一个文件里 做所有事情。它是所有静态接口 静态接口 的混合体,因此那些例子和文档同样适合 这个接口。

这种接口的最主要功能就是它提供了命令互用性,可以同时运行外部语言的代码。

elwms('run_python', 'A', A, ..., pythoncode, '...')
elwms('run_r', 'A', A, ..., 'rfile', '...')
elwms('run_octave', 'A', A, ..., octavecode, '...')

例如

% uses matplotlib to plot a figure from within octave

A=[[1,2,3];[4,5,6]];
B=[[1,1,1];[0,0,0]];
pythoncode=sprintf("\
\
import numpy\n\
x=numpy.array([[1.0,2,3],[4,5,6]])\n\
results=(A, B, [ 'bla1', 'bla2' ], x)\n\
\
from pylab import *\n\
plot(B)\n\
show()\n\
\
")

[A2,B2,bla,x]=elwms('run_python', 'A',A, 'B',B, 'pythoncode', pythoncode)
sprintf('%s\n', char(bla{1}))
sprintf('%s\n', char(bla{2}))

这个例子允许我们在octave中调用matplotlib来画图!当在不同语言之间转换变量时,shogun支持所有的数据 类型。在这种情况下两个浮点数矩阵A和B被传给python,之后它们又原样传回来,还有一个 字符串的列表和一个变量x。注意,这里使用elwms 而不是 sg 作为函数名。 要了解更多信息,请查看examples/elwms的关于elwms的例子。


SHOGUN Machine Learning Toolbox - Documentation