MATLAB中for循环变量值不增加
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中for循环变量值不增加相关的知识,希望对你有一定的参考价值。
for i=1:m
for j=1:n
if (i-10>=1) && (j-10>=1) && (m-i>=10) && (n-j>=10)
A=I(i-10:i+10,j-10:j+10);
[mm,nn]=size(A);
Arow=ascend(A,1,mm*nn); %排列矩阵A中元素
[b1,b2]=boundryvalue(Arow); %函数
a=select_noise(A,b1,b2); %函数
map(i,j)=a;
end
end
end
循环一次后,循环变量i,j值均不变,是什么原因
不好意思,程序没有问题。谁先来分就给谁吧
顺便说一下,MATLAB的for循环是基于索引的,即使你在循环体里面修改控制变量i、j的值,也不会影响循环的执行次数(实际上在循环体里面修改的i、j可以看成临时创建的局部变量)。 参考技术A 我感觉是你的if (i-10>=1) && (j-10>=1) && (m-i>=10) && (n-j>=10)
里面应该用逻辑&而不是&&
for循环和while循环的区别?
- 在开发中,如果明确循环的次数,使用for循环 ;不明确循环次数,使用while循环
- 从内存角度考虑,for循环的格式for(初始语句;条件语句;步长语句){循环体语句...},for循环结束之后,
- {}中的变量值会及时从内存中释放掉,不会消耗内存空间!while循环结束,还可以去访问变量值,不会立即从内存中
释放掉,等待GC垃圾回收器(垃圾回收线程,也称为守护线程!)空闲时候回收! - 开发中优先使用for循环,其次是while循环
以上是关于MATLAB中for循环变量值不增加的主要内容,如果未能解决你的问题,请参考以下文章
即使在设置 EnableDelayedExpansion [重复] 之后,也无法在批处理文件中的 for 循环内设置变量值