matlab列数组在for循环中的一个小问题

exn是一个一维列数组

b=exn;
a=114;
for i=0:1:687:
for j=1:149:
a=a-1+j;
b(a)=b(a)*(-1)^i;
end
end

最后报错
error in untitled
b(a)=b(a)*(-1)^i;
请问下各位了解的,问题出在哪里呢

没有预分配空间,且调用格式出错

开始定义了exn了吗?

算到后面你的a已经非常大了,确定没有超过数组b的索引长度?
而且for不需要以:结尾

https://zhidao.baidu.com/question/413306926.html

b(a)可以这样标识吗

没有定义exn,内外循环执行过程报错,无法判断数组存在

第一次循环 a=0; 而b(0)本身就会出现错误

需要知道exn的长度,确保在计算过程中b的数组长度没有超过exn的长度,否则会报错。

就是在计算过程中a的数值不能大于exn的数组长度。

整个循环下来你的a最终会达到7586002,所以初始化的b=exn,需要保证exn的数据长度大于等于7586002。

for语句语法错误!不是那样用的,翻翻语法教程

a=114;要在每次循环的末尾重新赋值

b=exn;
a=114;
for i=0:1:687:
for j=1:149:
a=a-1+j;
b(a)=b(a)*(-1)^i;
a=114;
end
end

exn数组长度未定义会有警告,i值有问题