MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 252|回复: 7|关注: 0

[已解决] 字节数如何统计

[复制链接]

新手

9 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
MATLAB如何统计数字的所占的字节数,包括末尾数字0
例如:
a=0.120;
length(num2str(a))的结果是4,为什么不是5

MATLAB 基础讨论
版块优秀回答者

入门

112 麦片

财富积分


50500


5

主题

110

帖子

19

最佳答案
  • 关注者: 2
发表于 2017-9-14 09:24:58 | 显示全部楼层 |此回复为最佳答案
本帖最后由 leavor 于 2017-9-14 09:36 编辑

a=0.120;
str=sprintf('%0.3f',a);
length(str)   %这是长度,并不是字节数
whos str

ans =

     5

  Name      Size            Bytes  Class    Attributes

  str       1x5                10  char      

可以看到str长度是5,字节数是10,字节数还跟编码格式有关系
whos a %求变量a所占字节数

Name      Size            Bytes  Class     Attributes

  a         1x1                 8  double              


占8个字节,数值型的变量字节数,只跟变量类型有关系,跟这数字大小没关系,跟小数后面的0省略不省略的也没关系

新手

9 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
 楼主| 发表于 2017-9-14 09:34:08 | 显示全部楼层
受教了,但是num2str(0.120)和'0.120'的区别是哪里呢?不应该都是字符型吗

MATLAB 基础讨论
版块优秀回答者

入门

112 麦片

财富积分


50500


5

主题

110

帖子

19

最佳答案
  • 关注者: 2
发表于 2017-9-14 09:38:44 | 显示全部楼层
爱我崔少 发表于 2017-9-14 09:34
受教了,但是num2str(0.120)和'0.120'的区别是哪里呢?不应该都是字符型吗

0.120 是数值型
'0.120'字符型,刚才改了下2楼的回答,再看看

新手

9 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
 楼主| 发表于 2017-9-14 14:46:53 | 显示全部楼层
leavor 发表于 2017-9-14 09:38
0.120 是数值型
'0.120'字符型,刚才改了下2楼的回答,再看看

还想再问一个问题,num2str(0.1200)的字符数长度为4,是(0+.+1+2),但是为什么length('0.1200')=6 ?

新手

9 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
 楼主| 发表于 2017-9-14 14:49:18 | 显示全部楼层
leavor 发表于 2017-9-14 09:38
0.120 是数值型
'0.120'字符型,刚才改了下2楼的回答,再看看

再有如果我a=[0.12 0.120 0.1200],我想输出a每个值的长度怎么实现?

新手

9 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
 楼主| 发表于 2017-9-14 14:53:40 | 显示全部楼层
A=[0.12 0.120 0.1200];
>> S=sprintf('%0.4f ',A)

MATLAB 基础讨论
版块优秀回答者

入门

112 麦片

财富积分


50500


5

主题

110

帖子

19

最佳答案
  • 关注者: 2
发表于 2017-9-14 15:08:30 | 显示全部楼层
爱我崔少 发表于 2017-9-14 14:46
还想再问一个问题,num2str(0.1200)的字符数长度为4,是(0+.+1+2),但是为什么length('0.1200')=6 ? ...

数值类型的,后面的0省略了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

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