⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mat_orth.cpp

📁 本程序将独立分量分析技术和数字水印技术有机地结合在一起
💻 CPP
字号:
#include <malloc.h>

void mat_transpose (float *, int , int , float *);
void mat_mult (float *, int , int , float *, int , int , float *);
int svd(float *, int , int , float *, float *);
/*mat_orth-矩阵正交化子程序
 *矩阵orthog是矩阵mat的一个正交基,它的模为1
 */
void mat_orth (float *mat, int n, float *orthog)
{
	
	float *u, *v, *d, *temp;
	int i;
	
	
	u =(float*) malloc(n * n* sizeof(float));
	d =(float*) malloc(n* sizeof(float));
	v =(float*) malloc(n * n* sizeof(float));
	temp =(float*) malloc(n * n* sizeof(float));
	
	for (i = 0; i < n; i++) {
		u[i * n + i] = mat[i * n + i];
	}
	svd (u, n, n, d, v);
	for (i = 0; i < n; i++) {
		temp[i * n + i] = 1 / (d[i]);
	}
	
	mat_mult (u, n, n, temp, n, n, v);
	mat_transpose (u, n, n, temp);
	mat_mult (v, n, n, temp, n, n, u);
	mat_mult (u, n, n, mat, n, n, orthog);
	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -