A.1.4 Oct文件中的元胞数组

Octave的元胞类型也可以在oct文件中使用。元胞数组就是octave_valueArray(数组),因此元胞数组的每个元素都可以像其他任何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,并将其作为单独的输出参数返回。例如:

[b1, b2, b3] = celldemo ({1, [1, 2], "test"})
⇒ 
b1 =  1
b2 =

   1   2

b3 = test

版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-4