fanning.m

来自「利用matla模拟薄膜生长」· M 代码 · 共 233 行

M
233
字号
%平铺(以粒子个数分几种情况)
for m=12:211
    for n=12:211
        s=DD(m,n);
        %个数小于10
        if s<=10
            DD(m,n)=2;
            s=s-2;
            for xx=m-1:m+1
                for yy=n-1:n+1
                    if xx==m&yy==n
                        continue
                    else if s<1
                            break
                        else
                            DD(xx,yy)=DD(xx,yy)+1;
                            s=s-1;
                        end
                    end
                end
            end

            %个数在11~26之间
        else if 10<s<=26
                DD(m,n)=2;
                s=s-2;
                for xx=m-1:m+1
                    for yy=n-1:n+1
                        if xx==m&yy==n
                            continue
                        else
                            DD(xx,yy)=DD(xx,yy)+1;
                            s=s-1;
                        end
                    end
                end
                for xx=m-2:m+2
                    for yy=n-2:n+2
                        if xx==m-1:m+1&yy==n-1:n+1
                            continue
                        else if s<1
                                break
                            else
                                DD(xx,yy)=DD(xx,yy)+1;
                                s=s-1;
                            end
                        end
                    end
                end
                
                %个数在27~36之间
        else if 26<s<=36
                DD(m,n)=4;
                s=s-4;
                for xx=m-1:m+1
                    for yy=n-1:n+1
                        if xx==m&yy==n
                            continue
                        else
                            DD(xx,yy)=DD(xx,yy)+2;
                            s=s-2;
                        end
                    end
                end
                for xx=m-2:m+2
                    for yy=n-2:n+2
                        if xx==m-1:m+1&yy==n-1:n+1
                            continue
                        else if s<1
                                break
                            else
                                DD(xx,yy)=DD(xx,yy)+1;
                                s=s-1;
                            end
                        end
                    end
                end
                
                %个数在37~60之间
        else if 36<s<=60
                DD(m,n)=4;
                s=s-4;
                for xx=m-1:m+1
                    for yy=n-1:n+1
                        if xx==m&yy==n
                            continue
                        else
                            DD(xx,yy)=DD(xx,yy)+2;
                            s=s-2;
                        end
                    end
                end
            %end                                     %errow   1
                for xx=m-2:m+2
                    for yy=n-2:n+2
                        if xx==m-1:m+1&yy==n-1:n+1
                            continue
                        end
                        DD(xx,yy)=DD(xx,yy)+1;
                        s=s-1;
                    end
                end
                for xx=m-3:m+3
                    for yy=n-3:n+3
                        if xx==m-2:m+2&yy==n-2:n+2
                            continue
                        else if s<1
                                break
                            else
                                DD(xx,yy)=DD(xx,yy)+1;
                                s=s-1;
                            end
                        end
                    end
                end

                %个数在61~72之间
            else if 60<s<=72
                    DD(m,n)=8;
                    s=s-8;
                    for xx=m-1:m+1
                        for yy=n-1:n+1
                            if xx==m&yy==n
                                continue
                            else
                                DD(xx,yy)=DD(xx,yy)+4;
                                s=s-4;
                            end
                        end
                    end
                    for xx=m-2:m+2
                        for yy=n-2:n+2
                            if xx==m-1:m+1&yy==n-1:n+1
                                continue
                            else
                                DD(xx,yy)=DD(xx,yy)+2;
                                s=s-2;
                                if s<2
                                    DD(xx,yy)=DD(xx,yy)+s;
                                end
                            end
                        end
                    end

                    %个数在73~96之间
            else if 72<s<=96
                    DD(m,n)=8;
                    s=s-8;
                    for xx=m-1:m+1
                        for yy=n-1:n+1
                            if xx==m&yy==n
                                continue
                            else
                                DD(xx,yy)=DD(xx,yy)+4;
                                s=s-4;
                            end
                        end
                    end
                    for xx=m-2:m+2
                        for yy=n-2:n+2
                            if xx==m-1:m+1&yy==n-1:n+1
                                continue
                            else
                                DD(xx,yy)=DD(xx,yy)+2;
                                s=s-2;
                            end
                        end
                    end
                    for xx=m-3:m+3
                        for yy=n-3:n+3
                            if xx==m-2:m+2&yy==n-2:n+2
                                continue
                            else if s<1
                                    break
                                else
                                    DD(xx,yy)=DD(xx,yy)+1;
                                    s=s-1;
                                end
                            end
                        end
                    end

                    %个数在97~100之间
                else
                    DD(m,n)=8;
                    s=s-8;
                    for xx=m-1:m+1
                        for yy=n-1:n+1
                            DD(xx,yy)=DD(xx,yy)+4;
                            s=s-4;
                        end
                    end
                    for xx=m-2:m+2
                        for yy=n-2:n+2
                            if xx==m-1:m+1&yy==n-1:n+1
                                continue
                            else
                                DD(xx,yy)=DD(xx,yy)+2;
                                s=s-2;
                            end
                        end
                    end
                    for xx=m-3:m+3
                        for yy=n-3:n+3
                            if xx==m-2:m+2&yy==n-2:n+2
                                continue
                            else
                                DD(xx,yy)=DD(xx,yy)+1;
                                s=s-1;
                            end
                        end
                    end
                    for xx=m-4:m+4
                        for yy=n-4:n+4
                            if xx==m-3:m+3&yy==n-3:n+3
                                continue
                            else if s<1
                                    break
                                else
                                   DD(xx,yy)=DD(xx,yy)+1;
                                   s=s-1;
                                end
                            end
                        end
                    end
                end
                end
            end
            end
        end
    end
end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?