Matrix_hub
Matrix_hub copied to clipboard
写了个根据向量生成对角矩阵的函数
Matrix* Matrix_asDiagonal(MATRIX_TYPE* data,int dimension) { Matrix* mat_ = (Matrix*)malloc(sizeof(Matrix)); if (mat_ == NULL) { printf("malloc space failed\n"); return NULL; } int size = dimension * dimension; mat_->row = dimension; mat_->column = dimension;
mat_->data = (MATRIX_TYPE*)malloc((size) * sizeof(MATRIX_TYPE));
memset(mat_->data, 0, sizeof(MATRIX_TYPE) * size);
for(int i = 0;i<dimension;i++){
for(int j =0;j<dimension;j++){
if(i==j){
mat_->data[i*dimension+j] = data[i];
}
}
}
return mat_;
}