为什么表达式为:
test = cast(strtrim('3'), 'uint8')
产生51?
对于:
也是如此test = cast(strtrim('3'), 'int8')
感谢。
答案 0 :(得分:3)
因为51是字符'3'
的{{3}}。
答案 1 :(得分:3)
因为51是字符'3'
的{{3}}。
如果要将字符串转换为数字3,则应使用
uint8(str2double('3'))
请注意,str2double
会忽略尾随空格,因此strtrim
不是必需的。
修改强>
在数字运算中使用字符串时,Matlab会自动将其转换为ASCII值。例如
>> '1'+1
ans =
50
答案 2 :(得分:1)
这是因为'3'被视为matlab的ASCII字符。通过转换为有符号或无符号整数(在本例中为8位),您要求Matlab将ASCII“3”转换为十进制数。在这种情况下,十进制数为51.如果您想查看更多转化,here是一个基本文档。