mymatrix.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. //=====================================
  2. // mymatrix.cpp
  3. //=====================================
  4. #include"mymatrix.h"
  5. #include"myvector.h"
  6. #include<iostream>
  7. using namespace std;
  8. //-------------------------------------
  9. void Matrix::set(int i, int j){
  10.   szl = i; szr = j;
  11.   if(i<=0 || j<=0){
  12.     cerr <<"bad Matrix size.n";
  13.     exit(1);
  14.   }
  15.   m = new int[i*j];
  16. }//------------------------------------
  17. int& Matrix::elem(int i, int j){      //引用返回的目的是返回值可以作左值
  18.   if(i<0||szl<=i||j<0||szr<=j){
  19.     cerr <<"Matrix index out of range.n";
  20.     exit(1);
  21.   }
  22.   return m[i*szr+j];
  23. }//------------------------------------
  24. Vector multiply(Matrix& m, Vector& v){  //矩阵乘向量
  25.   if(m.sizeR()!=v.size()){
  26.     cerr <<"bad multiply Matrix with Vector.n";
  27.     exit(1);
  28.   }
  29.   Vector r;
  30.   r.set(m.sizeL());       //创建一个存放结果的空向量
  31.   for(int i=0; i<m.sizeL(); i++){
  32.     r[i] = 0;
  33.     for(int j=0; j<m.sizeR(); j++)
  34.       r[i] += m.elem(i,j) * v[j];
  35.   }
  36.   return r;
  37. }//------------------------------------
  38.