24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2525  |  回复: 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的回帖

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的回帖
查看全部 7 个回答
★ ★ ★
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的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿A区211,22408 321求调剂 +7 随心所欲☆ 2026-04-15 8/400 2026-04-21 08:22 by Equinoxhua
[考研] 295分求调剂 +6 ?要上岸? 2026-04-17 6/300 2026-04-21 08:18 by Equinoxhua
[考研] 一志愿中科大材料与化工,353分还有调剂学校吗 +11 否极泰来2026 2026-04-15 13/650 2026-04-20 22:31 by Equinoxhua
[考研] 085600材料与化工调剂 5+3 孜孜不倦2002 2026-04-19 6/300 2026-04-20 21:25 by babero
[考研] 320求调剂 +6 深郊akm 2026-04-17 6/300 2026-04-20 18:57 by fs26jie
[论文投稿] 期刊推荐 +3 材料研究生 2026-04-15 5/250 2026-04-20 16:02 by 豆豆7758
[教师之家] 又一批高校组建人工智能学院 师资行吗 不是骗人吗 +4 yexuqing 2026-04-19 4/200 2026-04-20 14:47 by brantleo
[考研] 294求调剂 +8 淡然654321 2026-04-17 9/450 2026-04-19 19:51 by Equinoxhua
[考研] 291求调剂 +11 关忆北. 2026-04-14 11/550 2026-04-19 17:16 by 中豫男
[考研] 291求调剂 +12 关忆北. 2026-04-14 13/650 2026-04-19 16:50 by 中豫男
[考研] 085404 22408 309分求调剂 +10 lzmk 2026-04-14 11/550 2026-04-19 16:42 by 中豫男
[考研] 307中医考研调剂 +9 于以采蘩 2026-04-14 9/450 2026-04-19 08:41 by 烟雨流涯
[考研] 294求调剂 +15 淡然654321 2026-04-15 15/750 2026-04-19 08:20 by cuisz
[考研] 0854求调剂 +23 门路摸摸 2026-04-15 27/1350 2026-04-19 01:59 by 烟雨流涯
[考研] 接受任何调剂 +6 也就是栗子 2026-04-17 7/350 2026-04-18 17:20 by 涵竹刘
[考研] 297,工科调剂? +5 河南农业大学-能 2026-04-14 5/250 2026-04-18 15:17 by Equinoxhua
[考研] 收到复试调剂但是去不了 +8 小蜗牛* 2026-04-16 8/400 2026-04-18 11:15 by zixin2025
[考研] 急需调剂 +9 绝不放弃22 2026-04-15 10/500 2026-04-18 08:09 by chixmc
[有机交流] 二苯甲酮酸类衍生物 50+3 小白爱主人 2026-04-17 6/300 2026-04-17 18:47 by kf2781974
[考研] 一志愿沪9,生物学326求调剂 +9 刘墨墨 2026-04-15 9/450 2026-04-16 17:14 by 崔崔崔cccc
信息提示
请填处理意见