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值均不变,是什么原因
不好意思,程序没有问题。谁先来分就给谁吧

从代码看,循环后i和j没有不变的理由(除非m、n为1,循环体只执行一次,实际上没有循环)。
顺便说一下,MATLAB的for循环是基于索引的,即使你在循环体里面修改控制变量i、j的值,也不会影响循环的执行次数(实际上在循环体里面修改的i、j可以看成临时创建的局部变量)。
参考技术A 我感觉是你的if (i-10>=1) && (j-10>=1) && (m-i>=10) && (n-j>=10)

里面应该用逻辑&而不是&&

for循环和while循环的区别?

  1. 在开发中,如果明确循环的次数,使用for循环 ;不明确循环次数,使用while循环
  2. 从内存角度考虑,for循环的格式for(初始语句;条件语句;步长语句){循环体语句...},for循环结束之后,
  3. {}中的变量值会及时从内存中释放掉,不会消耗内存空间!while循环结束,还可以去访问变量值,不会立即从内存中
    释放掉,等待GC垃圾回收器(垃圾回收线程,也称为守护线程!)空闲时候回收!
  4. 开发中优先使用for循环,其次是while循环

以上是关于MATLAB中for循环变量值不增加的主要内容,如果未能解决你的问题,请参考以下文章

C#中,如何让一个变量值不等于指定的两个值

在批处理文件的 for 循环中设置随机变量值会产生错误

即使在设置 EnableDelayedExpansion [重复] 之后,也无法在批处理文件中的 for 循环内设置变量值

js如何动态循环给数组名加入变量值?

如何将变量值从循环A更新到另一个循环B - 在bash中

使用for循环语句