qq_38269799
youngkun_FH
采纳率50%
2018-05-18 13:15

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

5
已采纳

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;
请问下各位了解的,问题出在哪里呢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

13条回答

  • gls1234 麒麟降生的地方 3年前

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

    点赞 1 评论 复制链接分享
  • WSFUYUN WSFUYUN 3年前

    b(a)可以这样标识吗

    点赞 2 评论 复制链接分享
  • devmiao devmiao 3年前
    点赞 1 评论 复制链接分享
  • qq1125031002 修嫮 3年前

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

    点赞 1 评论 复制链接分享
  • qq_34438216 qq_34438216 3年前

    开始定义了exn了吗?

    点赞 1 评论 复制链接分享
  • jiujianx jiujianx 3年前

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

    点赞 评论 复制链接分享
  • qq_41655703 qq_41655703 3年前

    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

    点赞 评论 复制链接分享
  • weixin_37678997 weixin_37678997 3年前

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

    点赞 评论 复制链接分享
  • u011819029 风之子QL 3年前

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

    点赞 评论 复制链接分享
  • u011819029 风之子QL 3年前

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

    点赞 评论 复制链接分享
  • u011819029 风之子QL 3年前

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

    点赞 评论 复制链接分享
  • qq_42012038 qq_42012038 3年前

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

    点赞 评论 复制链接分享
  • weixin_41864552 weixin_41864552 3年前

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

    点赞 评论 复制链接分享