倍频程值维度
Octave value dimensions
我在 C++ 代码中使用 Octave。我试图找出 out
的每个元素的尺寸
octave_value_list out = feval (q, in, 1);
我用过
dim_vector x=out(0).dims();
根据dim-vector.h,最多只能支持7维。有什么方法可以获取 out
的每个元素的行、列和页?
首先,需要更正您所在处的一处错误:
According to dim-vector.h, it can only support up to 7 dimensions.
不正确。 header 表示最多只有 7 个维度的构造函数。除此之外,您还必须增加维数并自行设置它们的长度。
比较以下等价物:
// create dim_vector for 5x5x5 array
dim_vector d1 = dim_vector (5, 5, 5);
dim_vector d2 = dim_vector ();
dim_vector d3 = d2.redim (3);
d3(2) = 5;
d2.resize (3, 5);
要生成 dim_vectors 以上 7 个维度,您可以:
// 10 dimensional dim_vector of size 5x5x5...x5
dim_vector d = dim_vector ();
d.resize (10, 5);
参见 doxygen dev docs for dim_vector。它们在当前的开发资源上更加完整。
现在,回答你的具体问题
Is there any way I can get the rows, columns and pages for every element of out?
只需索引 dim_vector 你在 octave_value_list
中得到的每个 octave_value
octave_value_list out = feval (q, in, 1);
for (octave_idx_type out_i = 0; out_i < out.length (); out_++)
{
dim_vector d = out(out_i).dims ();
for (octave_idx_type di = 0 ; di < d.length (); di++)
std::cout << "Length of dimension " << di << ": " << d(di) << std:endl;
}
我在 C++ 代码中使用 Octave。我试图找出 out
octave_value_list out = feval (q, in, 1);
我用过
dim_vector x=out(0).dims();
根据dim-vector.h,最多只能支持7维。有什么方法可以获取 out
的每个元素的行、列和页?
首先,需要更正您所在处的一处错误:
According to dim-vector.h, it can only support up to 7 dimensions.
不正确。 header 表示最多只有 7 个维度的构造函数。除此之外,您还必须增加维数并自行设置它们的长度。
比较以下等价物:
// create dim_vector for 5x5x5 array
dim_vector d1 = dim_vector (5, 5, 5);
dim_vector d2 = dim_vector ();
dim_vector d3 = d2.redim (3);
d3(2) = 5;
d2.resize (3, 5);
要生成 dim_vectors 以上 7 个维度,您可以:
// 10 dimensional dim_vector of size 5x5x5...x5
dim_vector d = dim_vector ();
d.resize (10, 5);
参见 doxygen dev docs for dim_vector。它们在当前的开发资源上更加完整。
现在,回答你的具体问题
Is there any way I can get the rows, columns and pages for every element of out?
只需索引 dim_vector 你在 octave_value_list
octave_value
octave_value_list out = feval (q, in, 1);
for (octave_idx_type out_i = 0; out_i < out.length (); out_++)
{
dim_vector d = out(out_i).dims ();
for (octave_idx_type di = 0 ; di < d.length (); di++)
std::cout << "Length of dimension " << di << ": " << d(di) << std:endl;
}