返回信息流RT,小弟折腾半天没有找到比较好的解决办法,求大牛现身指点~
这是一条镜像帖。来源:北邮人论坛 / matlab / #8771同步于 2012/3/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
[求助]Matlab如何实现变数重循环
Rvtea
2012/3/9镜像同步17 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
也就是需要实现的循环的数目是一个变量,没有办法确定需要做多少个循环除非用户输入这个数字~
【 在 huawudi 的大作中提到: 】
: 变数重循环 是啥意思?
能回复得更详细一点儿么?因为实际上需要提取每个for循环的对应的下标值,导致几乎是必须要用for循环~
【 在 huawudi 的大作中提到: 】
: 那就用while实现
好,我晚上回去写一下~
【 在 huawudi 的大作中提到: 】
: 能用for循环就能用while循环,而且while灵活点,你写个大概的for循环我帮你改改看
其实我想实现的就是:
for x1=1:N
for x2=1:N
for x3=1:N
.......
for xn=1:N
积=矩阵[x1]*矩阵[x2]*矩阵[x3]*...*矩阵[xn];
end
.......
end
end
end
因为N是一个用户输入的变量,而我这边编写这个函数必须要写出这个变数重的循环,所以一直没办法写出循环,在网上查到的结果是一般采用递归的思路去写,但是我没有弄出来,因为必须每一重循环的变量xi值必须记录下来才能在最里层的循环里面得到结果,所以我就纠结在这儿了。。。
求大神指点一下怎么写成while循环~
【 在 huawudi 的大作中提到: 】
: 能用for循环就能用while循环,而且while灵活点,你写个大概的for循环我帮你改改看
初始化xi=1;%(i=1,2,...,n)
wend1=1;
while(wend1)
wend2=1;
while(wend2)
......
wendn=1;
while(wendn)
积=。。。。
xn=xn+1;
if xn==N+1
wendn=0;
end
end
....
x2=x2+1;
if x2==N+1
wend2=0;
end
end
x1=x1+1;
if x1==N+1
wend1=0;
end
end
你试试
这还是跟我一样的问题咯。。。因为N的个数不确定,所以写代码的时候不能像这么写省略号啊。。。得全部写出来才行的说。。。我之前写省略号是因为我只是表示一下我的意思,不代表就能那么写。。。全部for循环如果有N个的话,肯定是要全部表示出来的~
【 在 huawudi 的大作中提到: 】
: 初始化xi=1;%(i=1,2,...,n)
: wend1=1;
: while(wend1)
: ...................