- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 C++ 开发环境中工作,同时使用 Octave C++ API。
我想知道如何在调用函数时访问返回的 octave_value_list 中的单个值。
例如,当我调用时钟函数时,我会返回一个显示以下内容的 octave_value_list:
2014.0000 8.0000 22.0000 10.0000 1.0000 44.7120
我现在想访问每个值,但不知何故我只能获取年份。我缺少一些语法,也许有人可以帮助我。
最佳答案
回答您问题的有用文档:
您提到的值是 octave_value_list
中的多个 octave_value
,或者它是单个 octave_value
中的值数组octave_value_list
?
请注意,单个 octave_value
不一定是标量值。它可以是一个具有 n 维和多个元素的数组。它可以是结构、结构数组或元胞数组。它基本上可以是 Octave 变量可以是的任何东西。例如,调用:
foo ([1 2 3], "string", {678, "other string"}, struct ("over", 9000))
将创建一个包含 4 个 octave_value
的 octave_value_list
并且:
foo ([1 2 3])
仍将创建一个 octave_value_list
但只有一个 octave_value
。
您需要做的第一件事就是弄清楚您实际拥有的是什么。您可以使用 octave_value_list.length()
来获得一个想法,您可以通过简单地用圆括号 ()
索引它们来获得单独的 octave_value
。
for (int i =0; i < list.length (); i++)
do_stuff_with (list(i));
一旦你得到一个octave_value
,你就可以尝试转换成很多东西。
std::string s = val.string_value ();
bool b = val.bool_value ();
boolMatrix bm = val.bool_matrix_value ();
Cell c = val.cell_value ();
NDarray nd = val.array_value ();
int i = val.int_value ();
Array<double> ad = val.vector_value ();
虽然您可以使用 octave_value
的 is_x()
方法之一,但建议在转换后检查 error_state
的值检查是否有任何问题。这将提供更自然的 Octave 体验,并将处理您期望在 Octave 中为您处理的不同类型之间的转换。
关于c++ - Octave - 访问 octave_value_list 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25442432/
我在 C++ 开发环境中工作,同时使用 Octave C++ API。 我想知道如何在调用函数时访问返回的 octave_value_list 中的单个值。 例如,当我调用时钟函数时,我会返回一个显示
我是一名优秀的程序员,十分优秀!