【Matlab代码】产生一幅亮度按对角线方向的余弦规律变化的灰度图,比较一维方法和二维方法所需的时间

A=rand(3000,3000);
f=zeros(3000,3000);
u0=100;v0=100;
tic;%开始计时
%一维方法
%外层for循环开始
for r=3000
    u0x=u0*(r-1)
    %内层for循环开始
    for c=1:3000
        v0y=v0*(c-1);
        f(r,c)=A(r,c)*cos(u0x+v0y);
        %内层for循环结束
    end
%外层for循环结束
end
t1=toc%停止计时并记录时间到t1
tic;%重复开始计时
%二维方法
r=0:3000-1;
c=0:3000-1;
[C,R]=meshgrid(c,r);
%meshgrid是生成网络坐标的函数,实际就是生成需要的二维像素点的坐标拟合表示
%建议读者在这里中断,贯彻一下C和R矩阵的内容
g=A.*cos(u0.*R+v0.*C);
%系统将自动执行“循环”操作,实质是对R和C中每个数据按照指定公式操作
t2=toc%停止计时并将计时值保存到t2

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41985559/article/details/108968170