那个.我们再写实验报告的时候遇到了一些问题额.

1个回答

  • %%%%%(≧ω≦)/第一题%%%%%%%%%%

    A1=rands(100,100)+1;%100乘100的随机矩阵

    A=floor(A1.*16)./16;%扩大16倍,取整,再除16,这样就等份到16个不同数里啦

    imshow(A);%contourf(A,'DisplayName','A');figure(gcf);用这个就自动染色啦

    %%%%%(≧ω≦)/第二题%%%%%%%%%%

    A2=A;%先保存第一个矩阵,这样再生成时就可以直接COPY这段程序咯

    for i=9:1:91%规定范围,不要出现A的(-1,-1)这些坐标,这样就可以四面八方啦

    for j=9:1:91

    for k=-8:1:8%不让它超出矩阵范围%如果是8步内都可就再加个步数的循环

    if(k>=8);o=8;%同理不能出现(100,101)这样的坐标

    else o=k;

    end

    if(8-k>=8);p=8;

    else p=8-k ;

    end

    if (A2(i,j)==A2(i+o,j+p));%逐点判断如果出现距离该点8步以内就记0,否则记1

    B(i,j)=0;else B(i,j)=1;

    end

    end

    end

    end

    E1=sum(sum(B));%统计有几个1

    %%%%%(≧ω≦)/第三题%%%%%%%%%%

    AH=A;%同理记下之前的A,下面用的A就是新的啦

    for g=1:1:10000;%循环10000次咯

    A1=rands(100,100)+1;

    A=floor(A1.*16)./16;

    A2=A;

    for i=9:1:91%这样就可以四面八方啦

    for j=9:1:91

    for k=-8:1:8

    if(k>=8);o=8;

    else o=k;

    end

    if(8-k>=8);p=8;

    else p=8-k ;

    end

    if (A2(i,j)==A2(i+o,j+p));

    B(i,j)=0;else B(i,j)=1;

    end

    end

    end

    end

    E2=sum(sum(B));%那个J可以在这里乘

    if E2>=E1%判断E1,E2的大小,保存需要的变成AH,E1,进行下次比较咯

    AH=A1;E1=E2;

    else

    AH=AH;

    end

    end %大概是这意思吗?

    contourf(AH,'DisplayName','AH');figure(gcf)