MATLAB中for循环变量值不增加for i=1:mfor j=1:nif (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
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/11 10:46:40
![MATLAB中for循环变量值不增加for i=1:mfor j=1:nif (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](/uploads/image/z/6264666-18-6.jpg?t=MATLAB%E4%B8%ADfor%E5%BE%AA%E7%8E%AF%E5%8F%98%E9%87%8F%E5%80%BC%E4%B8%8D%E5%A2%9E%E5%8A%A0for+i%3D1%3Amfor+j%3D1%3Anif+%28i-10%3E%3D1%29+%26%26+%28j-10%3E%3D1%29+%26%26+%28m-i%3E%3D10%29+%26%26+%28n-j%3E%3D10%29A%3DI%28i-10%3Ai%2B10%2Cj-10%3Aj%2B10%29%3B%5Bmm%2Cnn%5D%3Dsize%28A%29%3BArow%3Dascend%28A%2C1%2Cmm%2Ann%29%3B+%25%E6%8E%92%E5%88%97%E7%9F%A9%E9%98%B5A%E4%B8%AD%E5%85%83%E7%B4%A0%5Bb1%2Cb2%5D%3Dboundryvalue%28Arow%29%3B+%25%E5%87%BD%E6%95%B0a%3Dselect_noise%28A%2Cb1%2Cb2)
MATLAB中for循环变量值不增加for i=1:mfor j=1:nif (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
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循环变量值不增加for i=1:mfor j=1:nif (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
从代码看,循环后i和j没有不变的理由(除非m、n为1,循环体只执行一次,实际上没有循环).
顺便说一下,MATLAB的for循环是基于索引的,即使你在循环体里面修改控制变量i、j的值,也不会影响循环的执行次数(实际上在循环体里面修改的i、j可以看成临时创建的局部变量).