【发布时间】:2015-12-17 10:21:02
【问题描述】:
假设我们有这三个数字:
a=2;
b=3;
c=5;
我想连接这三个数字:
out = 235; %// (double variable not string)
无论是否(更喜欢)将其转换为字符串,我如何才能做到这一点?
【问题讨论】:
标签: string matlab concatenation
假设我们有这三个数字:
a=2;
b=3;
c=5;
我想连接这三个数字:
out = 235; %// (double variable not string)
无论是否(更喜欢)将其转换为字符串,我如何才能做到这一点?
【问题讨论】:
标签: string matlab concatenation
更通用的方法Dan's:如果你有一个数字向量v,你可以通过
v = [a,b,c]; %// [2,3,5]
out = v * (10.^( (numel(v)-1):-1:0 ) )'
【讨论】:
除了 Shai 的解决方案,您还可以使用 num2str 和 str2num 的组合。
v = [a; b; c]; %// [2;3;5]
out = str2num(num2str(v)')
out =
235
或者更快,但可能更难阅读的替代方案:
out = str2num(char('0'+v))
现在,如果您必须多次执行此操作,可以将其分配给 anonymous function handle:
f = @(v) str2num(num2str(v(:))')
现在您可以简单地使用f(v)。由于使用了(:),这将适用于水平和垂直数组。
请注意,您也可以将 Shai 的方法转换为函数句柄:
f = @(v) v*(10.^((numel(v)-1):-1:0))';
【讨论】: