位置 1 处的索引超出数组边界。索引不能超过 1。 出错 VisCrypt (第 39 行) share2((a),(2*b-1):(2*b))=pixShare(2,1:2);
时间: 2023-11-30 17:04:20 浏览: 49
这个错误通常意味着您正在尝试写入一个超出数组边界的元素。在这种情况下,您正在尝试写入 `share2` 的一个索引位置,该位置超出了 `share2` 的列数。
在这个特定的代码中,我认为问题可能在于 `share2` 的第二个维度的大小不足以容纳 `2*b`。您可以尝试打印 `s` 和 `b` 的值以进行调试,以查看它们的实际值。如果 `s(2) < 2 * b`,则您需要扩展 `share2` 的大小。
您可以在代码中添加以下行来扩展 `share2` 的大小:
```matlab
if 2*b > size(share2, 2)
share2 = [share2, zeros(size(share2, 1), 2*b - size(share2, 2))];
end
```
这将在必要时给 `share2` 添加额外的列。将此行添加到黑色像素处理循环的顶部,并在 `share2` 赋值语句之前运行,以确保 `share2` 具有足够的列数。
相关问题
位置 1 处的索引超出数组边界。索引不能超过 1。 出错 VisCrypt (第 39 行) share2((a),(2b-1):(2b))=pixShare(2,1:2);
这个错误通常意味着您正在尝试写入一个超出数组边界的元素。在这种情况下,您正在尝试写入 `share2` 的一个索引位置,该位置超出了 `share2` 的列数。
在这个特定的代码中,我认为问题可能在于表达式 `(2b-1):(2b)` 中未使用乘号 `*`,导致 Matlab 将 `2b` 解释为一个变量名,而不是乘积。
您可以将表达式更改为 `(2*b-1):(2*b)`,以确保正确计算列索引。
以上代码出现了问题hite Pixel Processing... 位置 1 处的索引超出数组边界。索引不能超过 1。 出错 VisCrypt (第 39 行) share2((a),(2*b-1):(2*b))=pixShare(2,1:2);
根据错误提示,问题出现在第39行,是因为索引超出了数组边界。这可能是由于在生成分享时,x(i)或y(i)的值太大或太小,导致超出了share1或share2数组的大小。为了解决这个问题,你可以在代码中添加一些边界检查来确保索引不会超出数组大小。例如,你可以添加以下代码:
```
if a > size(inImg, 1) || b > size(inImg, 2)
continue;
end
```
这将确保a和b不会超出share1和share2数组的边界。在循环中添加这个代码,可以避免索引超出数组边界的问题。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)