y(:, i) = X' .* wL(:, i)'; 无法执行赋值,因为左侧的大小为 1×1,右侧的大小为 100×1。,matlab里修改这行代码
时间: 2024-03-02 20:48:05 浏览: 173
物联WL02A1 蓝牙模块协议
这个错误提示意味着在你的代码中,你尝试使用 `=` 运算符将一个大小为 `100×1` 的列向量赋值给一个大小为 `1×1` 的数组。具体来说,你的代码中 `y(:,i)` 是一个大小为 `100×1` 的列向量,而 `X' .* wL(:,i)'` 是一个大小为 `1×1` 的标量,因此无法将其赋值给 `y(:,i)`。要解决这个问题,你可以使用以下代码将 `X' .* wL(:,i)'` 中的元素逐个赋值给 `y(:,i)`:
```
y(:, i) = (X' .* wL(:, i))'; % 将右侧转换为行向量
```
这个代码使用转置运算符 `'` 将 `X' .* wL(:,i)` 转换为一个大小为 `1×100` 的行向量,然后再次使用转置运算符将其转换为一个大小为 `100×1` 的列向量,并将结果赋值给 `y(:,i)`,其中 `(:,i)` 表示将结果赋值给 `y` 的第 `i` 列。这样就可以使左侧索引与右侧大小兼容了。
阅读全文