C++矩阵类中的问题为什么我的矩阵只能算加法,不能算减法减法就是把加法的加号改成减号.结果mian函数中的减法写错,改过之后依然这样

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 12:14:36

C++矩阵类中的问题为什么我的矩阵只能算加法,不能算减法减法就是把加法的加号改成减号.结果mian函数中的减法写错,改过之后依然这样
C++矩阵类中的问题
为什么我的矩阵只能算加法,不能算减法



减法就是把加法的加号改成减号.
结果

mian函数中的减法写错,改过之后依然这样

C++矩阵类中的问题为什么我的矩阵只能算加法,不能算减法减法就是把加法的加号改成减号.结果mian函数中的减法写错,改过之后依然这样
你返回值的时候采用的是Matrix类型,在C++的函数中,对象的建立相比一般类型而言,需要更多的内存空间(尤其是你这种建立方式).
采用直接返回Matrix的方式,对象时建立在栈上的,而栈的空间实际上是十分有限的,所以会出现bad_alloc的错误,就是提示你内存分配不出来了.所以你要改用堆内存的方式.(具体堆和栈内存的区别请自行百度,内容比较多)
所以你的代码建议改成这样,Matrix *Matrix::operator-(const Matrix &right),这样返回值就是一个指针了,不需要太多的栈内存.
然后函数中的对象申请改成Matrix *extra=new Matrix(row,line);下面的具体运算部分改成
*extra.ptr[i*line+j]=ptr[i*line+j]-right[i*line+j];
同样的对于你所有重载的运算法函数都要做相似的修改,而且注意以后不要直接返回对象类型,而是要返回一个指针.

C++矩阵类中的问题为什么我的矩阵只能算加法,不能算减法减法就是把加法的加号改成减号.结果mian函数中的减法写错,改过之后依然这样 分块矩阵问题:A,B,C都是子块且都是逆矩阵,在矩阵中的位置为a11,a22,a21的下三角矩阵,求整个大矩阵的逆求整个大矩阵的逆矩阵, 线性代数,如图,我只有一个疑问,为什么明明题中的矩阵C、D那一块是右斜对角线的矩阵,而假设中分块矩阵C、D却是左对角线的矩阵,这两者是怎么等价的? 为什么说,矩阵的最小多项式为一次因式,那么这个矩阵只能是数量矩阵? 若矩阵A等于A的逆矩阵,那么A为什么矩阵?A、对称矩阵 B、反对称矩阵 C、正交矩阵 D、正定矩阵 有关矩阵的问题.如果已知矩阵AB=C,已知矩阵A和C怎么求矩阵B? matlab中矩阵A,子矩阵B,如何求得剩余构成矩阵C的问题 请问分块矩阵为什么(A O)的逆矩阵是(A逆 O ) (C B) (-A逆CB逆 B逆)呢是否涉及矩阵的等价(A等价于PAQ)?而等价矩阵在计算中何时可以替代原矩阵呢?题目那个问题我明白了那第二个问题 为什么求矩阵的秩只能进行初等行变换? 求矩阵的问题、 矩阵论的问题 矩阵的分块问题 矩阵迹的问题: 矩阵的相关问题 为什么矩阵两边可以同时取行列式,就比如AB=C,A,B,C都是n阶矩阵的话不好意思,我的问题没有表达清楚,我想问的是为什么可以写成|A||B| = |C| 为什么两个矩阵相加组成的新矩阵的秩小于等于原来两个矩阵的秩的和?矩阵A与矩阵B均是s*n矩阵,A+B得矩阵C,为什么有,秩(C) 马氏距离公式中的协方差矩阵为什么要用逆矩阵呢?马氏距离的协方差矩阵要求逆,有的时候还没有逆矩阵,为什么一定要用逆矩阵,逆矩阵与原来的协方差矩阵有何关系? 关于线性代数正定矩阵的问题:如果一个矩阵是正定矩阵的话,知道了矩阵A与与矩阵B合同,为什么就能够得出矩阵B也是正定矩阵呢?求亲们解释.