2013-02-15 102 views
1

什麼是通常的方式在MATLAB 中讀取將數字逐個讀入數組?將字符從一個字符串讀入一個數組

我試圖拆分一個四位整數,1234成一個數組[1 2 3 4]

+1

是'1234'的數值(如問題的主體建議)或字符串('char',像標題表明)? – tmpearce 2013-02-15 13:00:27

+0

@tmpearce - 它實際上可以是,但現在我更關心它是數值的情況。對於標題混淆抱歉。 – Rook 2013-02-15 23:46:08

回答

4

或者試試這個

result = str2num(num2str(1234)')' 
+0

這個工作,但遺憾的是不是價值矩陣(而不是你的例子中的矢量)。 – 2015-11-18 12:45:40

5

這是一個非常簡單的方法來做到這一點對一個整數

s = num2str(1234) 
for t=length(s):-1:1 
    result(t) = str2num(s(t)); 
end 

然而,最簡潔的方式,應該是:

'1234'-'0' 
+0

爲什麼'1234' - '0'有效?請添加解釋。 – Dan 2013-02-15 13:23:10

+0

@Dan這使用字符代碼以與數字相同的方式排序的事實。所以「1」的字符碼比「0」的字符碼高1。嘗試''0'+ 0'來找出代碼的實際內容。 – 2013-02-15 13:25:20

+0

對我來說,優秀的解決方案。爲什麼還打擾發佈循環? – Dan 2013-02-15 13:26:36

0

下面是使用一個遞歸函數的優雅和高效的解決方案:

function d = int2dig(n) 
    if n >= 10 
     d = [int2dig(floor(n/10)),mod(n,10)]; 
    else 
     d = n; 
    end 
相關問題