矢量到标量

时间:2019-01-11 16:04:44

标签: matlab

我有一个简单的问题,似乎无法为...找到简单的解决方案。

我有一个向量x

x = [1, 2, 3, 4]

我想将向量转换为标量,其中标量由x的值组成。

例如:

>> y = compressvec(x)
   y = 
       1234

如果该解决方案还适用于将每一行视为其自身向量的数组,那将是很好的选择

例如:

x = [1, 2, 3, 4; 5, 6, 7, 8]

>> y = compressvect(x)
   y = 
       1234
       5678

 >> size(y)
    ans =
         2     1 

1 个答案:

答案 0 :(得分:3)

以下是一些方法:

  • 转换为字符,然后解释为以10为底的数字:

    y = base2dec(char(x+'0'), 10);
    
  • 类似,通过字符向量的单元格数组:

    y = str2double(cellstr(char(x+'0')));
    
  • 使用矩阵乘法的直接算术方法:

    y = x * 10.^(size(x,2)-1:-1:0).';
    
  • 类似,在广播中使用逐元素乘法:

    y = sum(bsxfun(@times, x, 10.^(size(x,2)-1:-1:0)), 2);