找回密码
 注册
关于网站域名变更的通知
查看: 246|回复: 2
打印 上一主题 下一主题

执行大量的FOR循环及嵌套,数组结果溢出

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-10-16 16:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
  •      for(k=0;k<4;k++)                          //d8=d7*A1;4*10
  •                                                 {
  •                                                     for(i=0; i<10; i++)
  •                                                     {        d0=0.0;
  •                                                             for(j=0; j<4; j++)
  •                                                             {
  •                                                                     d0=d0+d7[k][j]*A1[j];
  •                                                             }
  •                                                                 d8[k]=(int)(d0*100);
  •                                                                 d8[k]= d8[k]/100;
  •                                                     }
  •                                                 }
  •                                         for(k=0;k<4;k++)                          //D=d8*Q;4*10
  •                                                 {
  •                                                     for(i=0; i<10; i++)
  •                                                     {        d0=0.0;
  •                                                            for(j=0; j<10; j++)
  •                                                           {
  •                                                          d0=d0+d8[k][j]*Q[j];
  •                                                           }
  •                                                              D[k]=(int)(d0*100);
  •                                                                  D[k]= D[k]/100;
  •                                                    }
  •                                     }
  •                      for(i=0; i<1;i++)                        //构造C1矩阵
  •                      {
  •                              for(j=0; j<20; j++)
  •                              {
  •                                      if(i==j) C1[j]=1;
  •                                      else C1[j]=0;
  •                              }
  •                      }
  •                                          for(k=0;k<1;k++)                          //d=C*D;1*10
  •                                                  {
  •                                                      for(i=0; i<10; i++)
  •                                                      {        d0=0.0;
  •                                                             for(j=0; j<4; j++)
  •                                                            {
  •                                                           d0=d0+C[k][j]*D[j];
  •                                                            }
  •                                                               d[k]=(int)(d0*100);
  •                                                                   d[k]= d[k]/100;
  •                                                     }
  •                                      }
  • 8 p5 q6 ]7 K# V( m1 V
% r! d- i/ k  {/ U9 }+ }2 q
[color=rgb(51, 102, 153) !important]复制代码

  q* c5 K# m3 H4 e9 m" F2 F7 O& u6 T5 D. P
使用ccs编码,在主函数的while里编写了一种算法,该算法涉及到大量的矩阵运算,因为没找到类似于matlab的矩阵运算库,我用大量的for循环等C语言完成了代码的编写,在运算过程中,涉及到数组之间的嵌套及调用,中间大量数组结果总是溢出!如果将while关闭,该算法只执行一次,结果基本是正确的,当while打开或者该算法执行100次及以上,观察到运行中的数组结果都是溢出的,给我的感觉是内存中的数据没有及时的刷新清空,而是不断的叠加最终导致溢出。
+ p/ z+ T% H9 U, o( }2 ~; u1 \3 h6 n7 k4 t请教大佬们该如何解决!代码太多,这里给出部分代码!
# O) B! M3 v1 ^1 B( s

该用户从未签到

2#
发表于 2020-10-16 16:39 | 只看该作者
看的我头都晕了
  • TA的每日心情
    开心
    2022-12-27 15:46
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    3#
    发表于 2020-10-16 17:25 | 只看该作者
    减少循环次数,优化程序
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 22:45 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表