为什么表达:
test = cast(strtrim('3'), 'uint8')
生产 51?
这也适用于:
test = cast(strtrim('3'), 'int8')
谢谢。
最佳答案
因为 51 是 ASCII code对于字符 '3'
。
如果你想将字符串转换成数字3,你应该使用
uint8(str2double('3'))
请注意 str2double
将忽略尾随空格,因此 strtrim
不是必需的。
编辑
当在数字运算中使用字符串时,Matlab 会自动将其转换为其 ASCII 值。例如
>> '1'+1
ans =
50
https://stackoverflow.com/questions/11295836/