将向量元素作为单个整数返回

时间:2014-09-16 16:47:43

标签: arrays matlab

在MATLAB中,如何将向量的内容作为单个整数返回。例如,如果a = [ 1 2 3 4 5 6 7 8 9 ],那么我想要一个返回数字123456789

的函数

它几乎挤压但移除所有尺寸!!

我目前的解决方案是使用格式为sprintf的{​​{1}}将字符串作为字符串读取,然后使用'%i'将其转换为数字。如果您只需要使用它几次就可以了,但如果它被使用了100000次则相当低效。

2 个答案:

答案 0 :(得分:3)

您可以使用

result = a*10.^(numel(a)-1:-1:0).';

或等效

result = sum(a.*10.^(numel(a)-1:-1:0));

他们似乎同样快。

答案 1 :(得分:1)

一种方法是将输入视为带有str2numnum2str的一位数字的向量 -

str2num(num2str(a,'%1d'))

或者

str2num(char(a+48)) %// Thanks to Luis!

或者

str2double(char(a+48))