爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6235|回复: 10

[程序设计] 这是为什么?

[复制链接]

新浪微博达人勋

发表于 2015-1-15 20:34:59 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 MiniTime 于 2015-1-15 20:59 编辑

我在编写书上关于阻尼最小二乘的的matlab程序,但是运行后,结果很奇怪,这是为什么?(我用的是matlab2014,但在07上运行是对的)



例题

例题
2213.jpg

mulDamp.m

1.22 KB, 阅读权限: 10, 下载次数: 1, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2015-1-16 08:13:29 | 显示全部楼层
MiniTime 发表于 2015-1-15 21:34
那我只能在外部加个double,能不能在函数内部进行修改?

你可以在程序的最后加上r=double(r);亲测有效。
我看了一下,可能是由于这里对r类型的定义是依赖x0的,而x0的类型是sym,因此系统就把符号r按照字符自动转成数字输出了。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 成长值: 32430
发表于 2015-1-15 20:51:16 | 显示全部楼层
请楼主上传mulDamp函数,谢谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-1-15 20:59:58 | 显示全部楼层
二爷名声在外 发表于 2015-1-15 20:51
请楼主上传mulDamp函数,谢谢!

已上传,可以下载了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2015-1-15 21:10:02 | 显示全部楼层
刚刚简单看了一下,先问一下您的版本是64位的吗?之前的07是32位还是64位的?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-1-15 21:11:19 | 显示全部楼层
二爷名声在外 发表于 2015-1-15 21:10
刚刚简单看了一下,先问一下您的版本是64位的吗?之前的07是32位还是64位的?


以前是matlab7.0,都是32位的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2015-1-15 21:28:47 | 显示全部楼层
目前我怀疑可能是某个数的位长度变了,或者是某个函数的定义变了…但是由于一方面我是64位,另一方面我没有7.0做对比,还只是怀疑,等研究一下再深入交流…
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-1-15 21:32:00 | 显示全部楼层
二爷名声在外 发表于 2015-1-15 21:28
目前我怀疑可能是某个数的位长度变了,或者是某个函数的定义变了…但是由于一方面我是64位,另一方面我没有 ...

我刚刚在最后面加了一个double(r)就对了
syms x y;
z = [x^2+y-6;y^2-x-2];
[r,m] = mulDamp(z,[4 4],0.1,8,2);
double(r)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2015-1-15 21:33:25 | 显示全部楼层
那就是这个格式的位变了…必须要整理成double型…
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-1-15 21:34:38 | 显示全部楼层
二爷名声在外 发表于 2015-1-15 21:33
那就是这个格式的位变了…必须要整理成double型…

那我只能在外部加个double,能不能在函数内部进行修改?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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