如何使整数等于char字面值?

时间:2016-09-24 17:58:31

标签: matlab

我需要做的是设置一个等于它的char值的整数。

例如,如果char为1,我希望int为1,而不是49!

最大的问题是我需要对矢量这样做。所以我有char矢量

[ 0 0 0 ]

我希望它成为一个int vector

[ 0 0 0 ]

我遇到的问题是str2num删除0 ...

为了解决我的确切问题,我从矩阵中选择一条线并将其设置为等于矢量:

virginMatrix(i,:) = prematrix([positionToPick : (positionToPick + P - 1)]);

3 个答案:

答案 0 :(得分:4)

如果您只想将字符串中的每个数字作为数字,那么只需从每个元素中减去字符串'0'。这将从字符串中的每个字符和表示数字的数字数组中减去'0'的ASCII代码。

string = '000'

out = string - '0';

%   0   0   0

这是一个额外的好处,因为它只是一个直接的减法,是最高性能的解决方案。

答案 1 :(得分:2)

以下是另一种方法:

由于str2num连接字符串的行,您可以通过转换字符串,转换为数字并转置回行向量将每个数字转换为单行:

required = str2num(string.').';

required =

   0   0   0

答案 2 :(得分:1)

如果我理解您的问题,可以使用num2cellstrjoinstr2num完成此操作,如下所示:

string = [ '0' '0' '0' ];
required = str2num(strjoin(num2cell(string)))