1. 程式人生 > >MATLAB中去掉字串中的空格,num2str引發的問題

MATLAB中去掉字串中的空格,num2str引發的問題

MATLAB中去掉字串中的空格(前後以及中間)的函式

  • 去掉前後的空格:strtrim();

eg:

>> a = ' Keep Moving ', aLen = length(a)
a =
 Keep Moving
aLen =
    13
>> b = strtrim(a), bLen = length(b)
b =
Keep Moving
bLen =
    11
  • 去掉字串所有(包括前後以及內部)的空格

這個好像沒有專門的函式,不過可以轉化一下,通過替換實現:strrep();
eg:

>> a = ' Keep Moving '
, aLen = length(a) a = Keep Moving aLen = 13 >> c = strrep(a, ' ', ''), cLen = length(c) c = KeepMoving cLen = 10
  • 引發上述問題的原因是我要用到num2str()函式將一個double型的行向量(僅包含0, 1)轉化為一個二進位制串,那麼問題來了:
>> m = [0, 1, 0, 1], mLen = length(m)
m =
     0     1     0     1
mLen =
     4
>> n = num2str(m), nLen = length
(n) n = 0 1 0 1 nLen = 10
由於後面要用到這個二進位制串,剛開始程式一直報錯,後來進行單步除錯,發現這個串長度很怪異;
原來,在將向量轉化為串時,MATLAB預設會在每個數後面加兩個空格,所以需要想辦法處理掉這些空格。

If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!