八度 - 将数字拆分为矩阵

时间:2013-12-24 11:24:26

标签: matrix octave

使用Octave我想以数字为例

x = 14

并将其拆分为如下所示的矩阵。

m = [1, 4]

到目前为止,我已经尝试将数字转换为字符串,然后使用str2mat函数而没有结果。

另一个例子是

x = 23445

转换为

m = [2, 3, 4, 4, 5]

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

x = 14;
sprintf('%d',x) - '0'
>> 1 4

答案 1 :(得分:2)

如果你想通过字符串操作来做到这一点,只要没有小数部分,这就是要走的路:

octave> x = 23445    
x = 23445
octave> s = int2str (x)
s = 23445
octave> m = arrayfun (@(x) str2double (s(x)), 1:numel(s))
m =

   2   3   4   4   5

答案 2 :(得分:1)

未经测试,但想法是:尝试将数字x = 23445除以10并取小数部分。

例如,迭代:

x = 23445;
t = 23445/10;     # t is 2344,5
r = floor(t);     # r is 2344
d = x - r * 10    # d is 5 = 23445 - 2344 * 10

d将具有值5(您拥有x的最后一位数字,将其添加到数组中)。 r的价值为2344.现在:

x = r;            # so x = 2344;
t = 2344/10;      # t is 234,4
r = floor(t);     # r is 234
d = x - r * 10    # d is 4 = 2344 - 234 * 10

d将具有值4. r将具有值234。 并迭代到r = 0