gramsch.cpp
来自「本程序将独立分量分析技术和数字水印技术有机地结合在一起」· C++ 代码 · 共 27 行
CPP
27 行
#include <stdio.h>
/*gramsch-克莱姆-施密特正交化子程序
*对n*m矩阵ww的第k行做施密特正交化,防止收敛到同一个方向
*/
void gramsch (float *ww, int n, int m, int k)
{
int ip, jp;
float tmp;
/* do Gram-Schmidt on row k of (n*m) matrix ww */
k -= 1;
if (k > n) {
printf("Error in gramsch");
}
else {
for (ip = 0; ip < k; ip++) {
tmp = 0;
for (jp = 0; jp < m; jp++) {
tmp += ((ww[m * ip + jp]) * (ww[m * k + jp]));
}
for (jp = 0; jp < m; jp++) {
ww[m * k + jp] = (ww[m * k + jp] - ((ww[m * ip + jp]) * tmp));
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?