如何将Octave函数导入MATLAB?

时间:2016-11-14 01:24:09

标签: matlab octave

我在Matlab中运行我的代码。但我也想用八度音调调用一个函数。我该如何将Octave的qp函数导入Matlab?

3 个答案:

答案 0 :(得分:3)

Octave语言是Matlab语言的超集。如果qp仅使用了Matlab语言,那么您只需将其添加到Matlab路径中即可完成。

然而,Octave的qp广泛使用了Octave语言,所以你基本上必须自己移植代码。没有这方面的工具,您必须将代码从一种语言转换为另一种语言。另外,实际的求解器是函数__qp__,用C ++编写并使用liboctave。 移植qp的两个更简单的选择是:

  • 将Matlab会话中的数据保存到文件save foo.mat mydata中,调用Octave进行工作并保存结果system ('octave --eval ''load ("foo.mat"); qp (...); save foo.mat ...;',并将文件读回load foo.mat。< / p>

  • 或更简单的替代方案,只需使用Octave。

答案 1 :(得分:1)

Octave syntaxt与MATLAB不完全兼容。例如,在Octave中定义函数的首选语法如下:

function ret =  f()
    %do something
endfunction

但是MATLAB不接受这种语法,并且还存在其他差异,例如调用本机代码的差异......因此将每个八度音阶库语句转换为matlab或转换oct c ++并不简单来源mex 一个简单的方法是你应该安装Octave并从中运行八度脚本,然后将结果保存到mat文件中,并在MATLAB中加载文件。您可以使用system函数执行八度音程或从shell运行它。

答案 2 :(得分:-3)

所以假设您在同一目录中有2个文件。 a.mb.m在脚本b.m中,如果您输入a作为一行代码,将会发生一切(变量赋值函数定义计算等...)

此外,您可以使用import语句将内容添加到导入列表中。见here.