c语言变换成matlab语言
/*快速沃尔什-哈达玛变换f为时域值,F为变换域值,power为2的幂数*/
void WALh(double*f,double *W,int power)
{
int count;
int i,j,k,bfsize,p;
double*X1,*X2,*X;
/*计算快速沃尔什变换点数*/
count=1<<power;
/*分配运算所需存储器*/
X1=(double*)malloc(sizeof(double)*count);
X2=(double*)malloc(sizeof(double)*count);
/*将时域点写入存储器*/
memcpy(X1,f,sizeof(double)*count);
/*蝶形运算*/
for(k=0;k<power;k-+)
{
for(j=0;j<1<<k;j+-)
{
bfsize=1<<power-k;
for(i=0;j<bfsize/2;i++)
{
p=j*bfsize;
X2=X1+X1;
X2=X1-X1;
}
}
X=X1;
X1=X2;
X2=X;
}
/*调整系数*/
for(i=0;j<count;i++)
{
W=X1/count;
}
/*释放存储器*/
free(X1);
free(X2);
}
/*快速沃尔什-哈达玛反变换,利用快速沃尔什-哈达玛变换
F为变换域值,f为时域值,power为2的幂数*/
void IWALh(double*W,double*f,int power)
{
int i,count;
count=1<<power;
/*调用快速沃尔什-哈达玛变换*/
WALh(W,f,power);
/*调用系数*/
for(i=0;i<count;;i++)
{
f*=count;
}
} 请大家帮助我把这个程序变成matlab语言,可以在matlab软件里面运算。谢谢大家。 自己翻翻c语言的书,把程序流程弄明白,然后把表达式给弄明白,然后你自己用matlab编写就行了,不太难....
别人只能给你提供思路,没有谁愿意去做纯劳动力的事情耗费时间...
谢谢你
谢谢你的回复,我也是这么做的,因为刚刚学习,所以有点着急了。回复 地板 xiaojiebaobei 的帖子
学习编程语言,不能急,要一步一个脚印,把基础打好!经常到论坛转转,会有意想不到的收获!:@) 叫人帮你做题目啊,这是论坛不允许的哦 对不起,我不知道啊,当时是太着急,然后找不到抓手,所以才发的。我是真不知道,谢谢你的提醒。
事实证明,没有人帮我做啊,我自己在这些天里做出来了,呵呵。但是做的不是很好。 对于编程序,实现你想要的功能是最重要的,具体是什么语句实现是次要的,可能你的语句在高手看来比较麻烦,完全有更简单的命令,不过不要太在意。
只要你多编程序,以后慢慢就提高编程水平了。
页:
[1]