刚刚的代码出现错误无法执行赋值,因为左侧的索引与右侧的大小不兼容。 出错 Untitled (第 40 行) llr(:, 1) = -2*(received_signal+1);
时间: 2024-05-27 14:08:28 浏览: 157
这个错误通常出现在你试图将一个大小不同的向量或矩阵赋值给另一个向量或矩阵的某个子向量或子矩阵。在这种情况下,你需要检查一下左侧索引的大小是否与右侧向量或矩阵的大小相同。
具体来说,你需要检查 `llr` 和 `received_signal` 的维度是否一致。如果它们的维度不同,你需要使用 reshape 或者其他方法来调整它们的大小。如果它们的维度一致,你需要确保左侧的索引的大小和右侧的向量或矩阵的大小也一致。
另外,你还需要检查一下 `llr` 是否已经被定义和初始化。如果没有被定义和初始化,你需要在赋值之前先对 `llr` 进行定义和初始化。
相关问题
无法执行赋值,因为左侧的索引与右侧的大小不兼容。 出错 Untitled04 (第 32 行) spec(:, i) = abs(fft(frame, NFFT)).^2 / (NFFT * sum(win.^2))
这个错误可能是由于 `spec` 矩阵的维度不正确导致的。请检查 `spec` 的维度是否为 `(NFFT/2+1, length(t))`,如果不是,请使用以下代码将其初始化:
```matlab
spec = zeros(NFFT/2+1, length(t));
```
如果 `spec` 的维度已经正确初始化,请检查 `fft` 函数的输出是否与 `spec` 的第二个维度(即 `length(t)`)大小相同。如果不是,请检查 `buffer` 函数的参数是否正确,确保每一帧的长度为 `win_len`,并且每一帧之间的重叠长度为 `overlap_len`。如果仍然出现问题,请提供更多的代码和错误信息,以便我更好地帮助您解决问题。
无法执行赋值,因为左侧和右侧的元素数目不同。 出错 Untitled2 (第 50 行) mse(snr_idx) = total_mse/numBits;
很抱歉,我在给您提供的代码中犯了一个错误。这是因为我在初始化`mse`和`ber`变量时没有正确设置它们的大小。请修改代码如下:
```matlab
% 初始化误差矩阵
mse = zeros(size(snr_dB));
ber = zeros(size(snr_dB));
```
然后,您可以重新运行代码,这样就不会再出现“无法执行赋值,因为左侧和右侧的元素数目不同”的错误。非常抱歉给您带来了困扰,希望这次能成功运行!
阅读全文