2013-02-15 104 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 
相关问题