数组索引必须为正整数或逻辑值。 出错 rrtrrtkeyong (第 104 行) plot([vertex(new_vertex.parent).x vertex(length(vertex)).x], [vertex(new_vertex.parent).y vertex(length(vertex)).y], 'b');
时间: 2023-06-11 12:09:50 浏览: 67
这个错误可能是因为在调用 `vertex` 函数时使用了一个非正整数或非逻辑值作为索引。请检查代码中所有使用 `vertex` 函数的地方,确保它们的参数都是正整数或逻辑值。同时,也要确保在调用 `plot` 函数时传递的参数是正确的。如果您无法解决问题,请提供更多的代码和上下文信息,以便我更好地帮助您。
相关问题
为什么我运行出错了,显示数组索引必须为正整数或逻辑值
这个错误的原因是在计算调和级数前N项的和时,sum(i-1)的i可能会等于0,导致数组索引为负数。如果出现这种情况,Matlab会报出“数组索引必须为正整数或逻辑值”的错误。
要解决这个问题,可以将sum的第一个元素初始化为0,然后在计算sum(i)时,使用sum(i-1)来计算前i-1项的和。这样就不会出现数组索引为负数的情况了。修改后的代码如下所示:
```
% 设置级数的项数
N = 100;
% 计算级数的前N项和
sum = zeros(N, 1);
sum(1) = 0;
for i = 2:N
sum(i) = sum(i-1) + 1/i;
end
% 绘制图像
plot(1:N, sum, '-o');
title('调和级数前N项和随N的增加而变化的图像');
xlabel('N');
ylabel('前N项和');
% 输出图像
print('harmonic_series_plot','-dpng');
```
在这个代码中,我们将sum的第一个元素初始化为0,然后在计算sum(i)时,使用sum(i-1)来计算前i-1项的和。这样就避免了数组索引为负数的情况,可以正常运行并输出图像。
数组索引必须为正整数或逻辑值。 出错 Untitled5 (第 20 行) plot(w,angle(H));
根据你提供的错误信息,可能是因为你在调用 plot 函数时使用了非法的数组索引,导致 MATLAB 抛出了错误。
请确认变量 w 和 H 的大小和类型是否正确。如果它们是向量或矩阵,你可以使用正整数索引来访问它们的元素。如果它们是结构体或单元数组,你可以使用花括号索引来访问它们的字段或元素。
如果你确定 w 和 H 的大小和类型都是正确的,但仍然遇到相同的错误,请尝试清除 MATLAB 的工作区并重新运行代码,或者使用不同版本的 MATLAB 运行相同的代码。如果问题仍然存在,请提供更多的上下文信息,以便我更好地帮助你解决问题。