在 Octave .oct 文件中,可以这样提取子矩阵:
B = A.extract(a-1,c-1,b-1,d-1) ;
相当于 Octave 代码中的 B = A(a:b,c:d),但是是否可以以类似的方式写入矩阵的子集,
A(a-1,c-1,b-1,d-1) = B ; // some other smaller matrix
还是我必须遍历相关的行/列并逐个元素地编写?
假设A
是 class Array
,您可以使用以下方法之一(请参阅文档):
Array<T> & insert (const Array<T> &a, octave_idx_type r, octave_idx_type c)
Array<T> & insert (const Array<T> &a, const Array<octave_idx_type> &idx)
您只需要知道左上角的下标索引(或 N 维的等效索引)。下面将 2D 矩阵B
插入到 2D 矩阵A
中,在坐标处(a, c)
A.insert (B, a, c);
对于更多维度,您需要Array<octave_idx_type>
为该点创建一个坐标。