使用Octave我想以数字为例
x = 14
并将其拆分为如下所示的矩阵。
m = [1, 4]
到目前为止,我已经尝试将数字转换为字符串,然后使用str2mat函数而没有结果。
另一个例子是
x = 23445
转换为
m = [2, 3, 4, 4, 5]
提前感谢您的帮助。
答案 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
。