Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 将字符串中的字符逐个读取到数组中_Matlab - Fatal编程技术网

Matlab 将字符串中的字符逐个读取到数组中

Matlab 将字符串中的字符逐个读取到数组中,matlab,Matlab,在MATLAB中,将整数逐位读入数组的常用方法是什么 我正在尝试将一个四位整数,1234拆分为一个数组[1 2 3 4],或者试试这个 result = str2num(num2str(1234)')' 这里有一个非常简单的方法来处理单个整数 s = num2str(1234) for t=length(s):-1:1 result(t) = str2num(s(t)); end 然而,最紧凑的方式是: '1234'-'0' 你可以用 下面是一个使用递归函数的优雅而高效的解决方案:

在MATLAB中,将整数逐位读入数组的常用方法是什么

我正在尝试将一个四位整数,
1234
拆分为一个数组
[1 2 3 4]

,或者试试这个

result = str2num(num2str(1234)')'

这里有一个非常简单的方法来处理单个整数

s = num2str(1234)
for t=length(s):-1:1
   result(t) = str2num(s(t));
end
然而,最紧凑的方式是:

'1234'-'0'
你可以用


下面是一个使用递归函数的优雅而高效的解决方案:

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

1234
是一个数值(如问题主体所示)还是一个字符串(
char
,如标题所示)?@tmpearce-它实际上可以是,但现在我更感兴趣的是它是一个数值的情况。很抱歉标题混淆。@Dan这是因为字符代码的顺序与数字的顺序相同。因此
'1'
的字符代码正好比
'0'
的字符代码高1。尝试
'0'+0
找出代码的实际内容。我明白了,这是一个很好的解决方案。为什么还要费心发布循环?@Dan,因为循环更容易推广。例如,使用此方法生成
[12 23 34 41]
并不难。注意:对于数字矩阵,
num2str(矩阵)-“0”
可以排序,但由于使用
num2str
生成的字符矩阵中有空格,因此将返回一组
-16
列,但遗憾的是,这不是一个值矩阵(与示例中的向量相反)。
function d = int2dig(n)
   if n >= 10   
      d =  [int2dig(floor(n/10)),mod(n,10)];
   else
      d = n;
   end