c++矩陣相加
貫藝14778546297咨詢: 下面是一個(gè)關(guān)于的矩陣的類的C++代碼,實(shí)現(xiàn)了矩陣的相加,詳細(xì)問題如下: -
沙市區(qū)廓環(huán)面回復(fù):
______ c=a+b調(diào)用的operator+最后返回的是temp,這需要把temp復(fù)制到c,如果沒有專門實(shí)現(xiàn)=,那么只能做簡(jiǎn)單復(fù)制,也就是row,col,matrix這三個(gè)數(shù)據(jù)的復(fù)制,而matrix指向的內(nèi)容隨著temp的消亡而被釋放,所以c的matrix指針并不指向有意義的空間 如果用數(shù)組來(lái)實(shí)現(xiàn),從temp到c復(fù)制的時(shí)候直接把數(shù)組內(nèi)容也復(fù)制過(guò)去了,不會(huì)有這個(gè)問題
貫藝14778546297咨詢: c++矩陣的運(yùn)算 -
沙市區(qū)廓環(huán)面回復(fù):
______ 如果你已經(jīng)確定了矩陣是2行2列,可以寫成int a[2][2] . 但是一般還是寫成int **a;畢竟矩陣的行列是不確定的. 我給你我寫的代碼.可以參考下,里面有矩陣的加法跟乘法 #include<iostream> using namespace std; class Matrix {private: int row,...
貫藝14778546297咨詢: C++ 矩陣運(yùn)算 -
沙市區(qū)廓環(huán)面回復(fù):
______ #include <iostream>#include <iomanip>#include <string.h> using namespace std;//m*n 階矩陣 class M { public: M(int m, int n); M(M& m); virtual ~M(); int m; int n; private: int *a; friend istream& operator>>( istream& in, M& m ); friend ostream& ...
貫藝14778546297咨詢: 如何用C語(yǔ)言編程實(shí)現(xiàn)矩陣相加、相乘 -
沙市區(qū)廓環(huán)面回復(fù):
______ 矩陣相加會(huì)簡(jiǎn)單點(diǎn),設(shè)a[2][3]和b[2][3],只要在相應(yīng)的地方相加就行了,for(i=0;i for(j=0;j c[i][j]=a[i][j]+b[i][j]; 兩矩陣相乘,int a[][3]={1,2,3,4,5,6,7,8,9};//A為N*P矩陣, //假設(shè)是3*3的矩陣 int b[][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; //B為P*M矩陣,假設(shè)是3*5的矩陣 int c[3][5]={0};//結(jié)果矩陣3*5 for(int i=0;ifor(int j=0;jfor(int k=0;kc[i][j]+=a[i][k]*b[k][j];
貫藝14778546297咨詢: 用C++產(chǎn)生一個(gè)二維矩陣,并求出所有元素之和 -
沙市區(qū)廓環(huán)面回復(fù):
______[答案] 只會(huì)matlab 貌似C語(yǔ)言產(chǎn)生的二維數(shù)組就是一個(gè)矩陣,用兩個(gè)變量就可以了.然后累加
貫藝14778546297咨詢: C++ 中矩陣類的輸出方法 -
沙市區(qū)廓環(huán)面回復(fù):
______ void Matrix::show() { if(row*colum!=0) { for(int i=0;i<row*colum;i++) { cout.width(5); //控制輸出格式 cout<<*(data+i); if((i+1)%width==0) { cout<<endl; } } } } 我這還有一個(gè)關(guān)于矩陣的很好的例子:#include <iostream> using namespace std; /********...
貫藝14778546297咨詢: 用C++編程矩陣相乘矩陣相乘: a (m*k) * b(k*n) =c (m*n) -
沙市區(qū)廓環(huán)面回復(fù):
______ #include<stdio.h> int main() { int m[100][100],n[100][100]; int a[100][100]={0}; int H,L; int i,j,k; printf("Please Input 行和列:"); scanf("%d %d",&H,&L); for(i=0;i<H;i++) for(j=0;j<L;j++) { scanf("%d",&m[i][j]); } for(i=0;i<L;i++) for(j=0;j<H;...
貫藝14778546297咨詢: 用c++編寫一個(gè)含有矩陣轉(zhuǎn)置和加法運(yùn)算的函數(shù),矩陣的行數(shù)、列數(shù)有用戶輸入 -
沙市區(qū)廓環(huán)面回復(fù):
______ #include <stdio.h>#include <malloc.h> bool trans(int **,int ***,int m,int n); //矩陣轉(zhuǎn)置 ,第一個(gè)參數(shù)為轉(zhuǎn)置前矩陣 第二個(gè)參數(shù)保存了轉(zhuǎn)置后的矩陣 m n行列 bool add(int **,int **,int ***,int m,int n); //矩陣加法 確保2個(gè)矩陣行列相等..第一二個(gè)...
貫藝14778546297咨詢: 編寫求矩陣相乘的程序,C++ -
沙市區(qū)廓環(huán)面回復(fù):
______ 可以調(diào)用 matrix2() 或 matrix() 做矩陣相乘. 下面主函數(shù) 以 調(diào)用 matrix() 為例,介紹過(guò)程: 輸入?yún)?shù),動(dòng)態(tài)分配數(shù)組,輸入矩陣數(shù)據(jù),調(diào)用,輸出,釋放內(nèi)存. #include<iostream> using namespace std; #include<stdio.h> /*------------------...
貫藝14778546297咨詢: c++怎么編寫兩個(gè)矩陣相乘的程序 -
沙市區(qū)廓環(huán)面回復(fù):
______ #include using namespace std; int n=3; struct mat {int s[10][10]; mat operator*(mat q) { mat c; int i,j,k; for(i=0;i for(k=0;k { c.s[i][k]=0; for(j=0;j c.s[i][k]+=s[i][j]*q.s[j][k]; } return c; } }init,ans; int main() { mat A,B,C; for(int i=0;i for(int j=0;j cin>>A.s[i][j]; for(int i...