我在Matlab中运行我的代码。但我也想用八度音调调用一个函数。我该如何将Octave的qp
函数导入Matlab?
答案 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.m
和b.m
在脚本b.m
中,如果您输入a
作为一行代码,将会发生一切(变量赋值函数定义计算等...)
此外,您可以使用import
语句将内容添加到导入列表中。见here.