求大神啊!matlab可以在循环体中改变循环变量来改变循环次数吗?如何进行呢?
j=1;fori=1:10n(j)=i;j=j+1;i=i+3;end程序运行结果为n=[12345678910]我想期望结果是n=[14710]我看到VisualBas...
j=1;
for i=1:10
n(j)=i;
j=j+1;
i=i+3;
end
程序运行结果为n=[1 2 3 4 5 6 7 8 9 10]
我想期望结果是n=[1 4 7 10]
我看到Visual Basic里面可以这样做,Matlab里面怎么做呢? 展开
for i=1:10
n(j)=i;
j=j+1;
i=i+3;
end
程序运行结果为n=[1 2 3 4 5 6 7 8 9 10]
我想期望结果是n=[1 4 7 10]
我看到Visual Basic里面可以这样做,Matlab里面怎么做呢? 展开
2个回答
展开全部
Matlab里 给的解释是:
Because MATLAB resets the loop index to the next value when it returns to the top of the outer loop,it ignores any changes that took place within a nested loop.
貌似不可以这样做,想要得到你期望的结果,可以这样写:
j=1;
for i=1:3:10
n(j)=i;
j=j+1;
end
Because MATLAB resets the loop index to the next value when it returns to the top of the outer loop,it ignores any changes that took place within a nested loop.
貌似不可以这样做,想要得到你期望的结果,可以这样写:
j=1;
for i=1:3:10
n(j)=i;
j=j+1;
end
追问
看来Matlab还是没有其他语言灵活啊,你说的这个1:3:10我知道
展开全部
for i =1:3:10
x(i)=i;
end
x(find(x==0))=[]
x =
1 4 7 10
另一种方法:
x=[1:3:10]
x =
1 4 7 10
x(i)=i;
end
x(find(x==0))=[]
x =
1 4 7 10
另一种方法:
x=[1:3:10]
x =
1 4 7 10
更多追问追答
追问
我只是举个例子啊,我现在做的题目程序里面是变步长的,用Matlab怎么在循环体中改变循环变量来改变循环次数吗?
追答
可以改变的嘛。
for i=1:4
x=[1:i:30]
end
x =
Columns 1 through 19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Columns 20 through 30
20 21 22 23 24 25 26 27 28 29 30
x =
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
x =
1 4 7 10 13 16 19 22 25 28
x =
1 5 9 13 17 21 25 29
对不同的i,就有不同的步长,就有不同的x
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询