声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1165|回复: 6

[综合讨论] Matlab 精度控制问题

[复制链接]
发表于 2009-6-19 16:34 | 显示全部楼层 |阅读模式

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

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

x
matlab会自动改变变量的类型。版本2008b
如何自定义变量类型呢?(例如从开始都是整型数据)

碰到问题如下

a = int64(4);
a= 222222222;
class(a);

返回a是double精度了。我想一直控制a为int64,该怎么办?

另外奇怪的是 下面的奇怪输入输出
有人能解析原因吗?

clear all

>> int 0
ans =
0

>> int 1
ans =
x

>> int 2
ans =
2*x

>> int 3
ans =
3*x

>> double 0
ans =
    48
>> double 1
ans =
    49
>> double 2
ans =
    50

>> int a
ans =
a^2/2

>> double b
ans =
   98
>> double xx
ans =
   120   120
回复
分享到:

使用道具 举报

发表于 2009-6-19 16:44 | 显示全部楼层
 楼主| 发表于 2009-6-19 16:46 | 显示全部楼层
第二个问题明白了,
原来是当做字符串数组了。
第一个问题不知如何处理呢
发表于 2009-6-19 21:40 | 显示全部楼层
个人知道的是, matlab不需要像其他语文(C/fortran...), 事先定义其变量类型! 有其方便性! 但自己需特别小心!
还有不同语文各有其特色! 学习一语言的新手, 常习惯用熟悉的语言来要求它!
个人认为如此不好! 应该去了解其各别内涵, 如此才能学习到其特殊应有的用法!

[ 本帖最后由 ChaChing 于 2009-6-19 21:52 编辑 ]
发表于 2009-6-19 23:56 | 显示全部楼层
如果想一直控制a为int64,可以每次赋值时都采用a=int64()这种形式。
呵呵,比较笨的一种方法

评分

1

查看全部评分

 楼主| 发表于 2009-6-22 17:38 | 显示全部楼层
恩,可行的办法就是好办法。:lol
有时候我想控制好精度。因为整数表达的有效数据位数会大一些。
发表于 2009-6-23 00:28 | 显示全部楼层
help digits
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-25 12:53 , Processed in 0.066397 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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