matlab的for循环

a = rand(5,5);
[m,n] = size(a);
b = double(a);
for i=2:m-1
    for j = 2:n-1
        b(i,j) = a(i+1,j+1)+2*a(i+1,j)+a(i+1,j-1)-a(i-1,j+1)-2*a(i-1,j);
    end
end

首先随机初始化一个数a,然后获得a的大小为m,n。将a转换为双精度然后赋值给b。此时b的值为a的值。
接着对i循环,在i循环内部对j进行遍历,i=2时,j遍历2到5,然后将b中(2,2),(2,3),(2,4)的值用右边公式获取a的值并计算的值替换掉。内部的for循环end一次,接着执行外部的for循环,i=3,接着j从2执行到4。然后i=4,j从2执行到4。

原始的b为5x5大小,但是只执行了9次,也就是只替换掉内部的九个值,剩下的16个值仍然为原始的值,所以b的大小仍然是5x5在值替换时一定要注意是否全部替换了,不然大小容易搞错。

猜你喜欢

转载自blog.csdn.net/qq_43733107/article/details/129232443