从键盘输入任意整数,并从低位到高位对每位数进行分离
方法一:使用循环结构依次分离得到各位数
使用取模操作得到末位数,再利用循环,将末位数依次去除,便可实现分离。
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。