我有一个简单的问题,似乎无法为...找到简单的解决方案。
我有一个向量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
答案 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);