MATLAB 任意整数位的分离

从键盘输入任意整数,并从低位到高位对每位数进行分离

方法一:使用循环结构依次分离得到各位数

使用取模操作得到末位数,再利用循环,将末位数依次去除,便可实现分离。

num = input('请输入一个整数:\n');
ret = [];       % 用于存放整数的各位数
while num > 0       % num等于0时结束
    ret = [mod(num,10), ret];     % 分离末位数,放在矩阵前面
    num = floor(num / 10);        % 删除掉末位数,因为已经分离出来了
end
ret
方法二:转化成对字符串的操作
num = input('请输入一个整数:\n');
ret = num2str(num) - '0'

分析:num2str()函数将整数转换成字符串,也就是一个字符向量,

        例如,num2str(123) = '123',size('123') = [1,3],也就是一个1×3的字符矩阵,

        字符矩阵在运算时使用的是对应的ASCII码,

        double('123') = [49,50,51],也就是1,2,3分别对应的ASCII码,

        对于两个向量相减,只有两张情况不会报错,一种情况是两个向量维度相同,此时结果是向量的元素对应相减;另一种情况是被减的向量是一维向量,也可以说是标量,此时的结果是前一个向量的每个元素依次减去标量。

        所以'123' - '0'的结果也就是[1,2,3],也可以用'123' - 48,结果也是[1,2,3],因为0的ASCII码就是48。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

氘殁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值