Matrix_hub icon indicating copy to clipboard operation
Matrix_hub copied to clipboard

写了个根据向量生成对角矩阵的函数

Open Fixer-itb opened this issue 1 year ago • 0 comments

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_;

}

Fixer-itb avatar Oct 20 '23 06:10 Fixer-itb