上面代码N是偶数,但是还是出现错误:无法执行赋值,因为左侧和右侧的元素数目不同
时间: 2024-02-25 20:58:16 浏览: 65
c代码-9. 功能:用while语句计算1—n中的奇数之和及偶数之和。
如果N是偶数,那么ceil(N/2)的值就是N/2。因此,即使使用了ceil(N/2),在k=N/2的时候,r(ceil(N/2)+k-1)和r(ceil(N/2)-k+1)仍然是同一个位置,依然会导致左右元素数目不同的错误。
为了解决这个问题,可以修改循环的范围,让k的取值范围从1到N/2-1,这样就可以避免k=N/2的情况,从而避免左右元素数目不同的错误。具体代码如下所示:
```
for k = 1 : N/2-1
x1 = x(k : N);
x2 = x(1 : N+1-k);
r(N/2+k) = (x1'* x2) / N;
r(N/2-k) = r(N/2+k);
end
```
这样就可以避免左右元素数目不同的错误了。
阅读全文