【发布时间】:2015-01-07 23:12:32
【问题描述】:
我正在尝试使用 Matlab 方法来访问矩阵元素。例如,如果我在 MatLab 中有以下内容:
>> A = [1 2; 3 4]
A =
1 2
3 4
>> A(1,1) = 5
将生成此输出:
A =
5 2
3 4
这可以用c++中的操作符()来实现吗?提前致谢。
@编辑
对不起,我认为解析将通过函数指针来实现。
我会尽量说得更清楚。我有一个类矩阵,我想使用 operator() 更改类的相应值,将相应的数字传递给行和列。
【问题讨论】:
-
这和函数指针有什么关系?
-
无需重载任何东西,您只需执行
A[1][1] = 5。或者您可以使用许多现有的Matrix类之一(或编写您自己的)并定义一个()运算符。 -
OP 可能仍然需要一个重载的
operator()来实现像 matlab 这样的基于 1 的索引。 -
请阅读矩阵运算符的 C++ 常见问题解答:parashift.com/c++-faq/matrix-subscript-op.html
-
由于 C 使用从零开始的索引,它当然是
A[0][0]。请编辑您的问题,准确说明您的问题。