Octave的数组类型也可从oct文件中获得。元胞数组只是Array
属于octave_value
s、 因此元胞数组的每个元素都可以像对待任何其他元素一样对待octave_value
。一个简单的例子是
#include <octave/oct.h> #include <octave/Cell.h> DEFUN_DLD (celldemo, args, , "Cell Demo") { if (args.length () != 1) print_usage (); Cell c = args(0).cell_value (); octave_value_list retval; retval.resize (c.numel ()); // faster code by pre-declaring size for (octave_idx_type i = 0; i < c.numel (); i++) { retval(i) = c(i); // using operator syntax //retval(i) = c.elem (i); // using method syntax } return retval; }
请注意,元胞数组在标准oct文件中的使用频率较低,因此Cell.h头文件必须明确包括在内。示例的其余部分提取了octave_value
s从元胞数组中按个返回,并将其作为单独的输出参数返回。例如
[b1, b2, b3] = celldemo ({1, [1, 2], "test"}) ⇒ b1 = 1 b2 = 1 2 b3 = test
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2