爲什麼表達:變換串/焦炭到UINT8
test = cast(strtrim('3'), 'uint8')
產生51?
這也適用於:
test = cast(strtrim('3'), 'int8')
感謝。
爲什麼表達:變換串/焦炭到UINT8
test = cast(strtrim('3'), 'uint8')
產生51?
這也適用於:
test = cast(strtrim('3'), 'int8')
感謝。
因爲51是字符'3'
的ASCII code。
如果你想將字符串轉換爲數字3,你應該使用
uint8(str2double('3'))
注意str2double
會忽略尾隨空格,使strtrim
是沒有必要的。
EDIT
當字符串是在數字運算中使用,MATLAB自動將其轉換到其ASCII值。例如
>> '1'+1
ans =
50
您可以使用最後一個屬性輕鬆地將字符串數字轉換爲數字:'strnumbers ='1234567890';''strnumbers-'0''返回數組''1 2 3 4 5 6 7 8 9 0]' –
但必須要小心,因爲'0'-0'返回48. – Jonas
你是不是指'0 -'0''返回-48?確實如此,但也適用於任何函數,例如:'str2double(0)返回'NaN'這是開發人員/程序員做出正確的實現並在必要時捕獲不正確的輸入。 –
因爲51是字符'3'
的ASCII value。
這是因爲'3'被看作是matlab的ASCII字符。通過將一個有符號或無符號整數(在這種情況下是8位)進行轉換,您要求Matlab將ASCII'3'轉換爲十進制數。在這種情況下,十進制數字是51.如果你想看更多的轉換here是一個基本的文件。
因爲51是'3'的ASCII值? –
夠公平的。有道理。謝謝。 – cs0815