R软件如何实现将多个向量变成一个矩阵
展开全部 #include using namespace std;class Matrix{private: int row; int col; int **p;public: //矩阵的行列 Matrix(int *pm, int r, int c){ row = r; col = c; //创建二维数组 p = new int*[row]; for (int i = 0; i != row; ++i){ p[i] = new int[col]; } //矩阵元素赋值 if (pm != NULL) for (int i = 0; i != row; i++){ for (int j = 0; j != col; ++j){ p[i][j] = pm[i*col + j]; } } } //矩阵加法,结果存放在调用该函数的矩阵 void add_mm(Matrix &M){ for (int i = 0; i p[i][j] += M.p[i][j]; } } } //矩阵减法,结果存放在调用该函数的矩阵 void sub_mm(Matrix &M){ for (int i = 0; i p[i][j] -= M.p[i][j]; } } } //数与矩阵的乘法,结果存放在调用该函数的矩阵 void multi_num(int num){ for (int i = 0; i p[i][k] * M.p[k][j]; } } } return newM; } //矩阵的转置,返回一个新的转置矩阵 Matrix transpose(){ Matrix newM(NULL, col, row); for (int i = 0; i < row; ++i){ for (int j = 0; j < col; ++j){ newM.p[j][i] = p[i][j]; } } return newM; } void myDisplay(){ for (int i = 0; i != row; ++i){ for (int j = 0; j != col; ++j){ cout << p[i][j] << " "; } cout << endl; } }};int main(){ int arr1[][3] = { { 1, 1, 1 }, { 2, 2, 2 } }; int arr2[][3] = { { 10, 10, 10 }, { 20, 20, 20 } }; cout << "矩阵1:" << endl; Matrix m1(&arr1[0][0], 2, 3); m1.myDisplay(); cout << "矩阵2:" << endl; Matrix m2(&arr2[0][0], 2, 3); m2.myDisplay(); cout << "矩阵1加矩阵2:" << endl; m1.add_mm(m2); m1.myDisplay(); cout << "矩阵1减矩阵2:" << endl; m1.sub_mm(m2); m1.myDisplay(); int num = 100; cout << "矩阵1与数" << num << "的乘法:" << endl; m1.multi_num(num); m1.myDisplay(); int arr3[][2] = { {10, 10}, {20, 20}, {30, 30} }; Matrix m3(&arr3[0][0], 3, 2); cout << "矩阵3:" << endl; m3.myDisplay(); cout << "矩阵1与矩阵3的乘法:" << endl; m1.multi_mm(m3).myDisplay(); cout << "xxxxx" << endl;// cout << "矩阵1的转置:" << endl; m1.transpose().myDisplay(); system("pause");//按任意键继续 return 0;}执行结果: