在MATLAB中,如何将向量的内容作为单个整数返回。例如,如果a = [ 1 2 3 4 5 6 7 8 9 ]
,那么我想要一个返回数字123456789
。
它几乎挤压但移除所有尺寸!!
我目前的解决方案是使用格式为sprintf
的{{1}}将字符串作为字符串读取,然后使用'%i'
将其转换为数字。如果您只需要使用它几次就可以了,但如果它被使用了100000次则相当低效。
答案 0 :(得分:3)
您可以使用
result = a*10.^(numel(a)-1:-1:0).';
或等效
result = sum(a.*10.^(numel(a)-1:-1:0));
他们似乎同样快。
答案 1 :(得分:1)
一种方法是将输入视为带有str2num
和num2str
的一位数字的向量 -
str2num(num2str(a,'%1d'))
或者
str2num(char(a+48)) %// Thanks to Luis!
或者
str2double(char(a+48))