24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2003  |  回复: 5

zhz3011627

木虫 (小有名气)

[求助] 相关性函数的C程序

求关于两个不同时间序列的相关性函数的C语言程序。。。。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zhz3011627: 金币+10, ★★★很有帮助 2012-06-27 16:59:18
#include

//互相关
void corre(float x[],int m,float y[],int n,float z[],int l)
{
        int i,j,k;
        for(i=0; i         {
                z=0.0;
                k=i-(n-1);
                for(j=0; j                         if(j-k>=0&&j-k                                 z+=x[j]*y[j-k];
        }
}

void main()
{
        //m,n,a1,a2,b1,b2,x[],y[]可自行修改
        const int m=3;//length of x(n)
        const int n=3;//length of y(n)
        const int l=m+n-1;//length of r(n)
        const int a1=-1;//left border of x(n)
        const int a2=1;//right border of x(n)
        const int b1=0;//left border of y(n)
        const int b2=2;//right border of y(n)
        float x[m]={1,1,1};//x(n)={x(-1),x(0),x(1)}
        float y[n]={1,2,3};//y(n)={y(0),y(1),y(2)}
        float r[l];
        int c1, c2, i;
        c1=a1-b2;//left border of r(n)
        c2=a2-b1;//right border of r(n)

        corre(x,m,y,n,r,l);
        printf("result:\n";
        for(i=0; i                 printf("r(%d)=%f\n",c1+i,r);
}
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
2楼2012-06-27 14:49:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhz3011627

木虫 (小有名气)

引用回帖:
2楼: Originally posted by baobiao007 at 2012-06-27 14:49:37
#include<stdio.h>

//互相关
void corre(float x[],int m,float y[],int n,float z[],int l)
{
        int i,j,k;
        for(i=0; i<l; i++)
        {
                z=0.0;
                k=i-(n-1);
                for(j=0; j<m; j++)
                        if(j- ...

呵呵,牛人。。。为啥不能用英文?
3楼2012-06-27 17:05:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhz3011627

木虫 (小有名气)

引用回帖:
2楼: Originally posted by baobiao007 at 2012-06-27 14:49:37
#include<stdio.h>

//互相关
void corre(float x[],int m,float y[],int n,float z[],int l)
{
        int i,j,k;
        for(i=0; i<l; i++)
        {
                z=0.0;
                k=i-(n-1);
                for(j=0; j<m; j++)
                        if(j- ...

程序我调试了,但是有个地方不对,下面提示说z+=x[j]*y[j-k], “+=”: 左侧指针;需要右侧的整数值,是怎么回事?谢谢。。。
4楼2012-06-27 17:49:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

是复制粘贴代码时出的问题。看图吧,程序都是以前早就经过调试的。


我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
5楼2012-06-27 19:49:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhz3011627

木虫 (小有名气)

引用回帖:
5楼: Originally posted by baobiao007 at 2012-06-27 19:49:16
是复制粘贴代码时出的问题。看图吧,程序都是以前早就经过调试的。
90/0b/505962_1340797750_223.jpg

非常感谢。。。。
6楼2012-06-28 08:30:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhz3011627 的主题更新
信息提示
请填处理意见