迭代地从ArrayFire数组中移除元素
Iteratively removing elements from ArrayFire array
我试图在循环中迭代地从ArrayFire数组(af::array)中删除元素。假设我有:
af::array arr = af::range(af::dim4(4), -1, u32) + 1);
// arr = [1 2 3 4] (it's a column vector, though shown as a row vector here)
在循环的每次迭代中,我必须从数组中删除一个值。要删除的值取决于计算,其结果并不总是相同的。因此在循环的4次迭代中,过程可以看起来像:
// Iter 1: arr = [1 3 4] (removed 2)
// Iter 2: arr = [1 4] (removed 3)
// Iter 3: arr = [4] (removed 1)
// Iter 4: arr = empty (removed 4)
我想知道是否有人对如何最好地完成这一点有建议。我有一种技术,需要将arr转换为c数组,删除一个元素,然后重新转换回设备af::数组。有没有更习惯/更有效的方法来做到这一点?
假设示例中的代码使用列,我将执行以下操作,因为似乎没有任何类型的行/列删除函数。
i被设置为我们想要删除的行,编号从0开始:
int i=2;
arr = af::join(0,arr.rows(0,i-1), arr.rows(i+1,end));
af::af_print(arr);
打印:
arr [3 1 1 1]
1
2
4
如果你希望你的数据在列向量中,将'rows'函数更改为'cols'函数
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 如何将元素添加到数组的线程安全函数?
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 输出没有重复元素的动态数组(收缩数组)C++
- 数组中最大的非重复元素
- 数组元素打印的递归方法
- 对字符数组中的元素执行逐位操作
- 缓存std::数组的选定元素,并在c++中自动保持其一致性
- 如何计算数组中元素的位数?(不是数组的长度),并计算其数字的总和
- 通过交换元素使数组相同
- 按平均值替换数组中的元素
- 打印矢量数组中的所有元素
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 如何将元素从向量转移到新数组?
- 如何在向量数组中插入元素?
- 为什么 2 个相同数组的元素彼此相等
- C++ 中的二维整数数组,每行中的元素数量不均匀