如何從Matlab中的字符串創建數組數組?如何從MATLAB中的字符串創建數組數組?
例如,我有這樣的字符串:
>> str = dec2bin(7);
s = 111
我所需要的陣列[1 1 1]
。怎麼做?
我看到strread
函數strread 但我很難與非空格字符串輸入一起使用它。
如何從Matlab中的字符串創建數組數組?如何從MATLAB中的字符串創建數組數組?
例如,我有這樣的字符串:
>> str = dec2bin(7);
s = 111
我所需要的陣列[1 1 1]
。怎麼做?
我看到strread
函數strread 但我很難與非空格字符串輸入一起使用它。
標準解決方案是使用張貼由育該溶液中,
a = (str == '1');
其產生的邏輯結果。如果你需要一個雙,
a = double(str == '1');
甚至只是:
a = +(str == '1');
也許最簡單的尋找解決方案是這樣的一個:
a = str - 48;
雖然我覺得最後是作爲對最明顯它能做什麼。我更喜歡易於閱讀和理解目的的代碼。這個目標最好通過第二個解決方案來滿足,即恕我直言。
我想,天真:
n = length(s);
myArray = zeros(1,n)
for i = 1:n
myArray(i) = double(s(i));
,其中「雙()」是什麼命令是改變一個字符串元素的雙精度數,如果這確實是你想要的。
答案是使用 「bitget」
> x = bitget(7,1:3);
> class(bitget(7,1:3))
ans =
double
結果是雙。
隨着strread
: a = strread('123', '%c')
非常感謝。我不再需要字符串了;) – 2011-12-21 07:23:49