【问题标题】:Concatenate three numbers together in MATLAB [duplicate]在MATLAB中将三个数字连接在一起[重复]
【发布时间】:2015-12-17 10:21:02
【问题描述】:

假设我们有这三个数字:

a=2;
b=3;
c=5;

我想连接这三个数字:

out = 235; %// (double variable not string)

无论是否(更喜欢)将其转换为字符串,我如何才能做到这一点?

【问题讨论】:

  • 您想要数字235 还是向量[2,3,5]?要么做100*a + 10*b + c要么[a,b,c]
  • thisthis 的副本。

标签: string matlab concatenation


【解决方案1】:

更通用的方法Dan's:如果你有一个数字向量v,你可以通过

将它转换成单个数字
v = [a,b,c]; %// [2,3,5]
out = v * (10.^( (numel(v)-1):-1:0 ) )'

【讨论】:

    【解决方案2】:

    除了 Shai 的解决方案,您还可以使用 num2strstr2num 的组合。

    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))';
    

    【讨论】:

      猜你喜欢
      • 2022-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多