for i = 1:length(t) t(i) = sorted_all_y(round((1-p0)iN)); end 索引超出数组元素的数目(17644)。如何改正
时间: 2023-07-30 21:04:19 浏览: 96
ThoughtWorks.QRCode 1.0.4374.31614版本,可解决“索引超出了数组界限”问题
4星 · 用户满意度95%
这个错误是因为 `round((1-p0)*N)` 返回的值超出了数组 `sorted_all_y` 的索引范围。为了解决这个问题,你可以在计算索引之前先检查它是否超出了范围,并对超出范围的索引进行处理。例如:
```
for i = 1:length(t)
index = round((1-p0)*N);
if index > N
index = N;
elseif index < 1
index = 1;
end
t(i) = sorted_all_y(index);
end
```
在这个代码中,我们首先计算索引 `index = round((1-p0)*N)`,然后使用 `if` 语句检查它是否超出了范围。如果索引大于 `N`,我们将它设置为 `N`,如果索引小于 1,我们将它设置为 1。这样就避免了索引超出数组元素的数目的错误。
阅读全文