皮皮网
皮皮网

【大图网站源码】【商家通源码】【仿防伪源码】按部就班代源码_按部就班指标源码

来源:吸货出货公式源码 发表时间:2024-12-29 05:56:36

1.gdb命令中attach使用
2.C#中如何编写PCA算法代码?

按部就班代源码_按部就班指标源码

gdb命令中attach使用

       我们先看看我们的按部按部测试程序:

       /* in eg1.c */

       int wib(int no1, int no2)

       {

       int result, diff;

       diff = no1 - no2;

       result = no1 / diff;

       return result;

       }

       int main()

       {

       pid_t pid;

       pid = fork();

       if (pid <0) {

       printf("fork err\n");

       exit(-1);

       } else if (pid == 0) {

       /* in child process */

       sleep(); ------------------ (!)

       int value = ;

       int div = 6;

       int total = 0;

       int i = 0;

       int result = 0;

       for (i = 0; i < ; i++) {

       result = wib(value, div);

       total += result;

       div++

       value--;

       }

       printf("%d wibed by %d equals %d\n" value, div, total);

       exit(0);

       } else {

       /* in parent process */

       sleep(4);

       wait(-1);

       exit(0);

       }

       }

       该测试程序中子进程运行过程中会在wib函数中出现一个‘除0‘异常。现在我们就要调试该子进程。班代班指标源

       [调试原理]

       不知道大家发现没有,源码在(!)处在我们的按部按部测试程序在父进程fork后,子进程调用sleep睡了秒。班代班指标源这就是源码大图网站源码关键,这个sleep本来是按部按部不该存在于子进程代码中的,而是班代班指标源而了使用GDB调试后加入的,它是源码我们调试的一个关键点。为什么要让子进程刚刚运行就开始sleep呢?因为我们要在子进程睡眠期间,按部按部利用 shell命令获取其process id,班代班指标源然后再利用gdb调试外部进程的源码方法attach到该process id上,调试该进程。按部按部

       [调试过程]

       我觉上面的班代班指标源调试原理的思路已经很清晰了,剩下的源码商家通源码就是如何操作的问题了。我们来实践一次吧!

       我所使用的环境是Solaris OS 9.0/GCC 3.2/GDB 6.1。

       GDB 调试程序的前提条件就是你编译程序时必须加入调试符号信息,即使用‘-g‘编译选项。首先编译我们的源程序‘gcc -g -o eg1 eg1.c‘。编译好之后,我们就有了我们的仿防伪源码调试目标eg1。由于我们在调试过程中需要多个工具配合,所以你最好多打开几个终端窗口,另外一点需要注意的是最好在eg1的working directory下执行gdb程序,否则gdb回提示‘No symbol table is loaded‘。你还得手工load symbol table。好了,下面我们就‘按部就班‘的炬力源码开始调试我们的eg1。

       执行eg1:

       eg1 & --- 让eg1后台运行吧。

       查找进程id:

       ps -fu YOUR_USER_NAME

       运行gdb:

       gdb

       (gdb)attach xxxxx--- xxxxx为利用ps命令获得的子进程process id

       (gdb)stop--- 这点很重要,你需要先暂停那个子进程,然后设置一些断点和一些Watch

       (gdb)break-- 在result = wib(value, div);这行设置一个断点,可以使用list命令察看源代码

       Breakpoint 1 at 0x: file eg1.c, line .

       (gdb)continue

       Continuing.

       Breakpoint 1, main () at eg1.c:

        result = wib(value, div);

       (gdb)step

       wib (no1=, no2=6) at eg1.c:

        diff = no1 - no2;

       (gdb)continue

       Continuing.

       Breakpoint 1, main () at eg1.c:

        result = wib(value, div);

       (gdb)step

       wib (no1=9, no2=7) at eg1.c:

        diff = no1 - no2;

       (gdb)continue

       Continuing.

       Breakpoint 1, main () at eg1.c:

        result = wib(value, div);

       (gdb)step

       wib (no1=8, no2=8) at eg1.c:

        diff = no1 - no2;

       (gdb)next

        result = no1 / diff;

       (gdb)print diff

       $6 = 0 ------- 除数为0,我们找到罪魁祸首了。

       (gdb)next

       Program received signal SIGFPE, Arithmetic exception.

       0xffd in .div () from /usr/lib/libc.so.1

       至此,我们调试完毕。39源码网

       gdb命令中attach使用

C#中如何编写PCA算法代码?

               PCA的处理步骤:

               1,均值化

               2,求协方差矩阵(我知道的有两种方法,这是第一种,按部就班的求,第二种是:(A*A‘/(N-1)))

               3,求协方差的特征值和特征向量

               4,将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵

               5,将样本点投影到选取的特征向量上

       matlab实现源代码

%PCA算法,matlab实现

       function F=pcad(A,n)%A是M*N

       %测试实例A=[2.5,0.5,2.2,1.9,3.1,2.3,2,1,1.5,1.1;2.4,0.7,2.9,2.2,3.0,2.7,1.6,1.1,1.6,0.9]

       %结果F=[0.,-1.,0.,0.,1.,0.,-0.,-1.,-0.,-1.]

       %PCA第一步:均值化

       X=A-repmat(mean(A,2),1,size(A,2))%去均值

       %PCA第二步:求特征协方差矩阵

       B=COV(X')%求协方差

       %PCA第三步:求特征协方差矩阵的特征值和特征向量

       [v,d]=eig(B)%求特征值和特征向量

       %PCA第四步:将特征值按照从大到小的顺序排序

       d1=diag(d);%取出对角矩阵,也就是把特征值提出来组成一个新的M*1的d1矩阵

       [d2 index]=sort(d1); %特征值以升序排序 d2是排序后的结果 index是数排序以前的排名位置

       cols=size(v,2);% 特征向量矩阵的列数

       for i=1:cols   %对特征向量做相反位置的调整 是个降序排列。这个过程把特征值和特征向量同时做相应的降序排列

           vsort(:,i) = v(:,index(cols-i+1) ); % vsort 是一个M*col(注:col一般等于M)阶矩阵,保存的是按降序排列的特征向量,每一列构成一个特征向量

           %vsort保存的是协方差矩阵降序后的特征向量,为M*M阶

           dsort(i) = d1(index(cols-i+1));  % dsort 保存的是按降序排列的特征值,是一维行向量,1*M

       end  %完成降序排列

       M=vsort(:,1:n)%提取主成分量

       %PCA第五步:将样本点投影到选取的特征向量上

       F=(X'*M)'%最终的投影

相关栏目:休闲