错误使用 reshape 已知维度的乘积 8 不能被元素总数 502 整除。 出错 tongyuan (第 31 行) decDataEst = bin2dec(reshape(num2str(binDataEst), 8, [])');
时间: 2024-03-07 12:48:15 浏览: 161
pytorch改变tensor维度 - Python-PyTorch reshape Tensor维度
这个错误提示是因为 `numel(binDataEst)` 与 `8` 的乘积不能整除 `numel(binDataEst)`,导致 `reshape` 函数无法正确地将 `binDataEst` 重新排列成一个 `8` 行的矩阵。为了解决这个问题,您可以在 `reshape` 函数的第二个参数中使用一个不为 `[]` 的数字,以确保生成的矩阵行数为 `8`,并且列数根据需要自动计算。例如,您可以将代码修改为:
```matlab
decDataEst = bin2dec(reshape(num2str(binDataEst), 8, ceil(numel(binDataEst)/8)))';
```
在上面的代码中,我们使用 `ceil(numel(binDataEst)/8)` 计算 `reshape` 函数的第二个参数,以确保生成的矩阵行数为 `8`,并且列数根据需要自动计算。然后,我们将 `reshape` 的结果进行转置,以使得得到的结果是一个 `numel(binDataEst)/8` 行、8 列的矩阵,可以将每个 8 位二进制数转换为一个十进制数。
希望这可以帮助您解决问题!
阅读全文