24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2497  |  回复: 6

eamtbfs

铜虫 (小有名气)


[交流] 【求助】帮忙看看哪错了error: invalid lvalue in assignment

我最近用到FFTW,就网上找了个简单例子来学习了下。但这个简单例子编译出错,不知道怎么回事。我网上查了查,也没搞清是FFTW语句的问题,还是gcc编译器的问题。请高手帮忙看看啊!

错误信息如下:
$gcc34 FFTW_example.c -lfftw3 -lm
FFTW_example.c: In function `main':
FFTW_example.c:35: error: invalid lvalue in assignment
FFTW_example.c:36: error: invalid lvalue in assignment

用gcc4.3也是一样出错。

这个FFTW的简单例子程序的网址在这里http://www.elisanet.fi/mnentwig/webroot/FFTW_example/index.html

程序比较小就贴在下面。是creal 和cimag那两行出错了
/* ****************************************************
* FFTW example
* Markus Nentwig, 2007
* This program is in the public domain
* ****************************************************/
#include
#include
#include
#include
#include

int main(void){
  /* ****************************************************
   * Allocate memory
   * ****************************************************/
  int n=128;
  fftw_complex* b1=fftw_malloc(sizeof(fftw_complex)*n);
  fftw_complex* b2=fftw_malloc(sizeof(fftw_complex)*n);

  /* ****************************************************
   * Create forward FFT plan from b1 into b2
   * ****************************************************/
  fftw_plan p1=fftw_plan_dft_1d(n, b1, b2, FFTW_FORWARD, FFTW_ESTIMATE);

  /* ****************************************************
   * Create reverse FFT plan from b2 into b1
   * ****************************************************/
  fftw_plan p2=fftw_plan_dft_1d(n, b2, b1, FFTW_BACKWARD, FFTW_ESTIMATE);

  /* ****************************************************
   * Generate a single sine wave cycle
   * ****************************************************/
  int i;
  for (i=0; i < n; ++i){
    creal(b1)=sin((double)i/(double)n*2.0*M_PI);
    cimag(b1)=0;
  }
  
  /* ****************************************************
   * Execute FFT from b1 into b2
   * ****************************************************/
  fftw_execute(p1);

  /* ****************************************************
   * Dump the "spectrum".
   * Result:
   * First bin ("DC  term" is zero
   * * i*n/2 in 2nd bin
   * * -i*n/2 in last bin
   * * all other bins are zero
   * ****************************************************/
  for (i=0; i < n; ++i){
    printf("%1.7f\t%1.7f\n", creal(b2), cimag(b2));
  };

  /* ****************************************************
   * IFFT back into b1
   * ****************************************************/
  fftw_execute(p2);
  printf("\n";

  /* ****************************************************
   * Result: Original waveform scaled by n
   * ****************************************************/
  for (i=0; i < n; ++i){
    printf("%1.7f\t%1.7f\n", creal(b1), cimag(b1));
  };

  /* ****************************************************
   * Clean up
   * ****************************************************/
  fftw_destroy_plan(p1);
  fftw_destroy_plan(p2);

  fftw_free(b1);
  fftw_free(b2);
  return 0;
}
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★ ★
eamtbfs(金币+1): 谢谢参与 2011-02-25 06:01:14
余泽成(金币+3): 谢谢参与应助! 2011-02-27 15:06:29
抄都没抄对咯
CODE:
    creal(b1[i])=sin((double)i/(double)n*2.0*M_PI);
    cimag(b1[i])=0;

CODE:
printf("%1.7f\t%1.7f\n", creal(b1[i]), cimag(b1[i]));

2楼2011-02-24 19:31:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eamtbfs

铜虫 (小有名气)


zzzzz

[ Last edited by eamtbfs on 2011-2-25 at 06:06 ]
3楼2011-02-25 06:04:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eamtbfs

铜虫 (小有名气)


引用回帖:
Originally posted by yalefield at 2011-02-24 19:31:36:
抄都没抄对咯
CODE:
    creal(b1[i])=sin((double)i/(double)n*2.0*M_PI);
    cimag(b1[i])=0;

CODE:
printf("%1.7f\t%1.7f\n", creal(b1[i]), cimag(b1[i]));


我从网页上帖过来的,不知怎么贴过来就变了。不过我编译的时候是用的网上下载的程序,我仔细看了,我编译的程序语法没有这样的错,但就是gcc报告error: invalid lvalue in assignment

请帮忙编译下,看看问题出在哪。多谢多谢!
4楼2011-02-25 06:05:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lucktroy

禁虫 (小有名气)

★ ★ ★
余泽成(金币+3): 谢谢参与应助! 2011-02-28 20:09:22
本帖内容被屏蔽

5楼2011-02-28 19:25:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)


★ ★
余泽成(金币+2): 谢谢参与应助! 2011-03-07 21:38:09
没用过FFTW,不过这两行确实比较奇怪
CODE:
  /* ****************************************************
   * Generate a single sine wave cycle
   * ****************************************************/
  int i;
  for (i=0; i < n; ++i){
    creal(b1[i])=sin((double)i/(double)n*2.0*M_PI);
    cimag(b1[i])=0;
  }

creal和cimag是两个函数还是两个宏啊。如果是两个函数,那这里肯定是有问题的。如果是两个宏,不知道会展开成什么。
6楼2011-03-04 09:46:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)


★ ★
余泽成(金币+2): 谢谢参与应助! 2011-03-10 14:17:18
看起来就是creal和cimag的问题吧..
7楼2011-03-08 16:00:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 eamtbfs 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料调剂 +14 一样YWY 2026-04-06 14/700 2026-04-08 23:00 by 猪会飞
[考研] 278求调剂 +21 范婷娜 2026-04-07 24/1200 2026-04-08 22:48 by may_新宇
[考研] 生物学328分求调剂 +9 闪电kkl 2026-04-08 10/500 2026-04-08 21:42 by liuhuiying09
[考研] 298求调剂 +4 manman511 2026-04-05 4/200 2026-04-08 16:50 by tjzhao
[考研] 材料工程322 +16 哈哈哈吼吼吼哈 2026-04-07 17/850 2026-04-08 16:35 by luoyongfeng
[考研] 273求调剂 +41 麦小叮当 2026-04-06 48/2400 2026-04-08 15:16 by screening
[考研] 275 求调剂 +8 Lei812514 2026-04-07 8/400 2026-04-08 12:46 by chemisry
[考研] 312 化工或制药调剂 +9 小小墨123 2026-04-02 10/500 2026-04-08 10:30 by screening
[考研] 材料工程专业日语生求调剂 +9 111623 2026-04-07 9/450 2026-04-07 23:31 by 一只好果子?
[考研] 计算机11408 287 求调剂 +3 LiLe5 2026-04-07 3/150 2026-04-07 23:15 by shanqishi
[考研] 312求调剂 +18 gtw1 2026-04-06 20/1000 2026-04-07 18:16 by 蓝云思雨
[考研] 求调剂 +4 电气小神童 2026-04-04 6/300 2026-04-07 00:14 by guanxin1001
[考研] 287求调剂 +3 通信学硕081000 2026-04-03 4/200 2026-04-06 21:03 by going home
[考研] 0855求调剂材料 +11 红桃灼灼 2026-04-04 12/600 2026-04-06 10:26 by 蓝云思雨
[考研] 315求调剂 +5 &123456789 2026-04-05 5/250 2026-04-05 19:55 by nepu_uu
[考研] 294求调剂 +6 Grey_Ey 2026-04-02 9/450 2026-04-04 22:07 by hemengdong
[考研] 22408,264求调剂 +3 ywh729 2026-04-03 4/200 2026-04-04 11:04 by ywh729
[考研] 材料专业383求调剂 +8 郭阳阳阳成 2026-04-03 8/400 2026-04-04 10:29 by Rednal.
[考研] 交通运输考试264分求工科调剂 +4 jike777 2026-04-02 4/200 2026-04-02 21:53 by zllcz
[考研] 346求调剂 +5 郑诚乐 2026-04-02 5/250 2026-04-02 16:38 by SZW_UJN
信息提示
请填处理意见