matlab 数据类型强制转换

如何将double型转换为int型

一般来说用dec2hex及hex2dec就可以。

ss='010600001388849C';
ssDec = hex2dec(ss);
ssHex = dec2hex(ssDec);
format hex;
disp(ssHex);

不过前提是你的机器能处理这么大的数。
我用小一点的数比如说ss='01600001388849C'测试的结果是没问题的,但是我的机器不能处理大于2^52的数,所以很抱歉无法完成你给出的这个例子。

====================================
补充回答:
拆分合并的方法试了试, 但是不知道你究竟要怎么用,也没有继续;希望你能把问题描述的更详细一点,特别是最终目的是干什么。

Matlab中关于大数处理有几个方法
1.调用maple内核运算,但是我的matlab版本中没有;
2.拆分合并,ss(1)~ ss(16)依次对应'010600001388849C' 中的各个位上的数,可以考虑用上。
3.换Ubuntu Linux,可支持8G内存运算,也许可行。
4.实在没有适合方法,就只能改算法了。

很抱歉还是没搞定。

====================================
补充回答:
终于理解你的问题了,呵呵!

你试试下面这样的写法可不可以:
A = [1; 06; 0; 0; 19; 136; 132; 156];
fwrite(s, A, 'char', 'async');

其中,A是对应你要输入的'010600001388849C' 这个十六进制数的十进制表示,你用dec2hex(A)可以得到
01
06
00
00
13
88
84
9C.
有可能还有问题,不过你可以尝试在这个思路上再改改。

====================================
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-22
x=1.234
whos x
a=int32(x)
注意Matlab里面的int分为8位16位32位64位等,还有有符号还是没符号。
我想你肯定用这个int()函数出现问题了。你可以查下帮助文档。mathworks公司给Matlab做了一个非常强大的帮助Help。本回答被网友采纳
相似回答