还是存在错误:无法执行赋值,因为左侧和右侧的元素数目不同。
时间: 2024-02-25 22:58:13 浏览: 127
matlab代码左移-sublime-selections:SublimeText插件3.向左和向右扩展所选区域,直到找到给定的字符串
如果还是出现了左侧和右侧元素数目不同的错误,那么可能是因为N是奇数,而在代码中使用了N/2来进行循环。在这种情况下,当k=(N+1)/2时,r(N/2+k-1)和r(N/2-k+1)是同一个位置,但是在第二次循环时,r(-k)仍然不是一个合法的下标,导致左右元素数目不同的错误。
为了解决这个问题,可以使用ceil(N/2)来代替N/2,这样就可以保证在N为奇数时也能正常运行。具体代码如下所示:
```
for k = 1 : ceil(N/2)
x1 = x(k : N);
x2 = x(1 : N+1-k);
r(ceil(N/2)+k-1) = (x1'* x2) / N;
if k ~= ceil(N/2)
r(ceil(N/2)-k+1) = r(ceil(N/2)+k-1);
end
end
```
这样就可以避免左右元素数目不同的错误了。
阅读全文