错误使用 .* 矩阵维度必须一致。 出错 test4 (line 30) fit(i) = sum(sum(chrom .* E .* w));
时间: 2024-02-06 19:02:22 浏览: 87
matlab.docx
这个错误提示是因为矩阵 `chrom`、`E` 和 `w` 的维度不一致导致的。你需要检查一下这三个矩阵的维度是否正确。
在这个问题中,矩阵 `chrom` 表示每个干扰机是否干扰每个雷达,矩阵 `E` 表示干扰机对雷达的干扰效益,矩阵 `w` 表示每个雷达的目标威胁系数。为了计算每个方案的综合干扰效益,我们需要对 `chrom`、`E` 和 `w` 进行逐元素相乘,然后再求和。
因此,你需要确保 `chrom` 和 `E` 的维度一致,同时 `w` 的长度应该等于 `E` 的列数(即雷达的数量)。如果维度不一致,你可以使用 `reshape` 函数将 `chrom` 转换成与 `E` 相同的维度。具体来说,你可以将第 11 行改为:
```matlab
chrom = reshape(pop(i, :), size(E));
```
这样可以将 `pop(i, :)` 转换成与 `E` 相同的维度,并且避免了维度不一致的问题。
阅读全文