写入 .oct 文件中的矩阵而不循环

Write to a matrix in .oct file without looping?

本文关键字:循环 oct 文件 写入      更新时间:2023-10-16

在Octave .oct文件中,可以这样提取子矩阵:

B = A.extract(a-1,c-1,b-1,d-1) ;

相当于八进制代码中的 B = A(a:b,c:d(,但是否可以以类似的方式写入矩阵的子集,

A(a-1,c-1,b-1,d-1) = B ; // some other smaller matrix 

还是我必须遍历相关的行/列并逐个元素写入?

假设A是类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>