matlab 关于变步长的问题

问题描述:

matlab 关于变步长的问题
如题:
m=1;
for i=1:m:6
if 判断语句
执行语句
else
此时的m-1
end
这是程序中会用到,但是这样做貌似无法改变步长,变步长应该怎么实现.
对于i值 就通过if-else语句来判断此时的i步长是+1还是-1,这个i是动态的,对于不同的数据是不同的.请问还有办法吗?
非常感谢1楼的那么用心,自己解决了.
1个回答 分类:综合 2014-09-25

问题解答:

我来补答
其实你可以考虑尝试用数组的算法,毕竟MATLAB并不擅长循环运算.如果不是特别复杂的运算,数组的算法可能并不难想出来.
如果你非要用变步长的循环,我想到一个折中的办法,因为你提前知道了m应该取那些数值,也就是说你也提前知道了i的相应数值.可以提前构造一个数组(比如叫prei),其中的元素就是i相应的数值.
然后在循环内加入这样的判断
if(~isempty(find(prei==i)))
end
这样他就会在你所需要的步长上进行计算了.
如果m事先不知道,那我倒是建议用while,不用for来做循环,
可以写为
i=1;
while (i
 
 
展开全文阅读
剩余:2000
上一页:这一步看不懂
下一页:这题详细解释