声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1460|回复: 4

[编程技巧] 符号运算太复杂导致matlab出错

[复制链接]
发表于 2009-10-26 13:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我用了一个50*50次的循环,每次循环计算一个很复杂的积分,到中途出错了
以前做的18*18时候,没有出错,说明不是程序的错误。

  1. ??? Error using ==> reshape
  2. To RESHAPE the number of elements must not change.
  3. Error in ==> sym.maple at 94
  4.       result = reshape(result,size(varargin{3}));
  5. Error in ==> sym.int at 51
  6.    r = reshape(maple('map','int',f(:),[x.s '=(' a.s ')..(' b.s ')']),size(f));
复制代码
请问如何改进我的程序,以便让它能运行通?

补充?难道说在调用maple做符号运算的时候,会积累什么错误之类的?调用次数太多就出错?maple就崩溃?

[ 本帖最后由 beyondhxf 于 2009-10-26 13:15 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-10-26 21:50 | 显示全部楼层
符号运算来此学的, 没这方面经验!
仅有出错提示无出错代码, 真没办法, 待高人路过
发表于 2009-10-26 23:10 | 显示全部楼层
result = reshape(result,size(varargin{3}));根据提示,应该是result和size(varargin{3})的元素大小不一样。最好能贴出程序代码,可以简化贴出,能说明问题即可。
 楼主| 发表于 2009-10-27 14:40 | 显示全部楼层
原帖由 beyondhxf 于 2009-10-26 13:11 发表
我用了一个50*50次的循环,每次循环计算一个很复杂的积分,到中途出错了
以前做的18*18时候,没有出错,说明不是程序的错误。
??? Error using ==> reshape
To RESHAPE the number of elements must not change. ...


贴出相关的程序,仅是说明性的,不全面。

  1. syms sita
  2. for i=1:50
  3.      A(1,i)=B(sita)
  4.      。。。
  5.      A(4,i)=B(sita)
  6. end
  7. %这里,B函数是一个关于sita的函数,返回一个关于sita的表达式(比较复杂,恐怕是致错的根源),是sym型的。
  8. for i=1:50
  9. for j=1:50
  10. C(i,j)=int(A(1,i)*A(2,j),-1,1);
  11. end
  12. end
  13. %由于循环次数是50*50,比较多,在算到一半的时候会出现如上提示的错误。而如果循环次数在18*18次,则不出错。
  14. 本人猜测,这是由于调用maple内核过多而导致的错误,并不是程序本身的语法错误。
复制代码
发表于 2009-10-27 14:48 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 22:31 , Processed in 0.053935 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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