调用 Octave 内置函数从C++中获取 2 个参数
Calling Octave built-in function taking 2 arguments from C++
我在运行以下代码时遇到段错误。调用一个 Octave 内置函数需要 1 个参数就可以正常工作,例如 Fsize。但是对于 2 个参数中的任何一个,我都会得到一个段错误。我尝试过Frdivide和Fplus。
#include <octave/oct.h>
#include <octave/builtin-defun-decls.h>
int main() {
octave_value_list args;
octave_value_list res;
Matrix l(3,1,1.0);
Matrix r(3,1,1.0);
args(0) = l;
args(1) = r;
res = Fplus(args); // BOOM !!!
}
似乎必须初始化解释器,甚至认为 Octave 文档表明这对于内置的 Octave 函数不是必需的。以下代码有效:
#include <octave/oct.h>
#include <octave/octave.h>
#include <octave/builtin-defun-decls.h>
#include <octave/toplev.h>
int main() {
string_vector argv(2);
argv(0) = "embedded";
argv(1) = "-q";
octave_main(2, argv.c_str_vec(), 1);
octave_value_list args;
octave_value_list res;
Matrix l(3,1,1.0);
Matrix r(3,1,1.0);
args(0) = l;
args(1) = r;
res = Fplus(args);
std::cout << res(0).matrix_value();
clean_up_and_exit(0);
}
相关文章:
- 有没有办法在从编译器获取参数时避免预处理器宏?
- 如何使用可变参数模板获取参数的变量号及其大小C++
- 如何从 x64 程序集中的堆栈中获取参数?
- 从命令行获取参数时出现问题
- 函数获取参数的变量列表并将它们转换为一系列字节?
- 当函数在C++中获取参数时,为什么要使用取消引用
- C++是否在 for 循环之前获取参数
- 为什么相同的函数签名只有区别,另一个通过 const 获取参数是重新定义?
- 获取参数的子类
- 如何循环访问在 cmd 中获取参数的 exe 文件
- 一种从元组/数组获取参数包的方法
- 如何获取参数包中元素的索引
- 延长函数的寿命延长 由 const& 获取参数并由 const& 返回
- 我的二传手可以获取参数,但实际上不能?
- 如何获取参数[0]
- 可以用于获取参数类型的 decltype
- 使用常量,获取参数表而不是复制
- C++11、14 或 17 是否提供了一种从 decltype() 中获取参数的方法?
- 根据给定的索引集获取参数包的子集
- 为什么 std::not1() 通过常量引用而不是按值获取参数