zwwcqu 发表于 2009-6-19 16:34

Matlab 精度控制问题

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

ChaChing 发表于 2009-6-19 16:44

Ref : http://forum.vibunion.com/forum/thread-75501-1-1.html

zwwcqu 发表于 2009-6-19 16:46

第二个问题明白了,
原来是当做字符串数组了。
第一个问题不知如何处理呢

ChaChing 发表于 2009-6-19 21:40

个人知道的是, matlab不需要像其他语文(C/fortran...), 事先定义其变量类型! 有其方便性! 但自己需特别小心!
还有不同语文各有其特色! 学习一语言的新手, 常习惯用熟悉的语言来要求它!
个人认为如此不好! 应该去了解其各别内涵, 如此才能学习到其特殊应有的用法!

[ 本帖最后由 ChaChing 于 2009-6-19 21:52 编辑 ]

friendchj 发表于 2009-6-19 23:56

如果想一直控制a为int64,可以每次赋值时都采用a=int64()这种形式。
呵呵,比较笨的一种方法

zwwcqu 发表于 2009-6-22 17:38

恩,可行的办法就是好办法。:lol
有时候我想控制好精度。因为整数表达的有效数据位数会大一些。

cheno9468 发表于 2009-6-23 00:28

help digits
页: [1]
查看完整版本: Matlab 精度控制问题