求大神啊!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里面怎么做呢?
展开
 我来答
点子兵兵
2012-04-13 · 超过21用户采纳过TA的回答
知道答主
回答量:54
采纳率:100%
帮助的人:58.4万
展开全部
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
追问
看来Matlab还是没有其他语言灵活啊,你说的这个1:3:10我知道
导超
2012-04-13 · TA获得超过5716个赞
知道大有可为答主
回答量:1730
采纳率:0%
帮助的人:1764万
展开全部
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
更多追问追答
追问
我只是举个例子啊,我现在做的题目程序里面是变步长的,用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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式