是否可以在C++中使用类似matlab的索引来访问数组
Is it possible to access array using matlab like indexing in C++?
我正在考虑使用类似matlab的索引访问C++数组,例如a[1 , :]
。这将是非常方便的。
我重载了运算符[],但似乎不可能使用a[1, : ]
语法。
我找到的解决方案是编写一个脚本,它预处理C++源代码,并将a[1, :]
转换为C++函数,例如col(a, 1)
。但这似乎很费力。
有人有更好的解决方案吗?谢谢
我找到的解决方案是编写一个脚本,它预处理C++源代码,并将[1,:]转换为C++函数,例如col(a,1)。但这似乎很费力。
它也很脆弱,容易出错,复杂度很高,会导致任何错误和模糊。你最好使用宏(而且你永远不应该使用那样的宏)。
有人有更好的解决方案吗?
你有没有考虑过简单地添加一个可以满足你需求的函数?语法不会使用数组索引,但任何查看代码的人(包括两年后的自己)都会熟悉它,并且是显式的(因为函数名会说明函数的作用)。
Boost多数组提供1索引和列视图。range()
代替了matlab算子:
。
您还可以从文档中定义数组视图,如本例所示
myarray[ boost::indices[range()][range() < 5 ][4 <= range().stride(2) <= 7] ]
相当于matlab
myarray(:,1:4,4:2:7)
相关文章:
- 数组索引的值没有增加
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 查找最接近的大于当前数字的数字的索引
- 有可能在Armadillo中复制MATLAB circshift方法吗
- 在C++中调整向量中的索引
- 重载元组索引运算符-C++
- 给定一个向量,如何找到该向量的所有子集和的原始索引
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 为std::string的某个索引赋值
- 并行用于C++17中数组索引范围内的循环
- 跟随整数索引列表的自定义类迭代器
- 如何在for循环中包含两个索引值的测试条件
- D3D11-将混合权重和索引传递到顶点着色器
- 将转换字符键入 int 以用作向量C++的索引
- 有没有更好的方法可以使用特征/C++实现 matlab 的逻辑索引?
- 为什么用于阈值矩阵元素的 Matlab 逻辑索引操作在性能上优于 mex 实现?
- 如何在CUDA内核中索引Matlab数组
- matlab风格的C++数组索引
- 是否可以在C++中使用类似matlab的索引来访问数组