matlab实验3 科学计算与数据处理 实验3 MATLAB程序设计实验(1)

  1. 编写两段简短的代码,演示MATLAB脚本和函数的不同。
  2. 编写程序演示循环(for、while)、分支(if-else-end、switch-case)和异常处理(try-catch)控制结构的用法,并尽量体现各种关系运算符(==、~=、<、>、<=、>=)的用法。
  3. 编写程序演示return、input、keyboard、pause、break、error、lasterr、warning、lastwarn等指令的功能和用法。
  4. 串演算实验:设计实验演示验证eval与feval的功能和用法。
  5. 程序调试实验:将以下代码保存为Debug_Test.m文件

 

function [nn,xx,xmu,xstd]=Debug_Test(x)

%本程序供调试实验用

xmu=mean(x);

xstd=std(x);

[nn,xx]=hist(x);

if nargout==0

   barzzy0(nn,xx,xmu,xstd)

end

 

function barzzy0(nn,xx,xmu,xstd)

clf,

bar(xx,nn);hold on

Ylimit=get(gca,'YLim');

yy=0:Ylimit(2);

xxmu=xmu*size(yy);

xxL=xxmu/xmu*(xmu-xstd);

xxR=xxmu/xmu*(xmu+xstd);

plot(xxmu,yy,'r','Linewidth',3)

plot(xxL,yy,'rx','MarkerSize',8)

plot(xxR,yy,'rx','MarkerSize',8),hold off

 

然后,在命令窗口中执行以下命令:

randn('seed',1),x=randn(1,100);Debug_Test(x)

 

对程序错误进行调试,总结调试过程,指出并改正所给程序的出错语句,记录程序出错时和调通后显示的图形。

  1. 程序性能剖析实验:将以下代码保存为relaxzzy.m文件

 

function elapt=relaxzzy(iter)

% 本程序供性能剖析实验用

sz=102;

plate=magic(sz)*64/(sz*sz);

newplate=plate;

im=image(plate);

axis off

set(gcf,'DoubleBuffer','on')

shg

tic

for i=1:iter

    for j=2:(sz-1)

        jm1=j-1;

        jp1=j+1;

        for k=2:(sz-1)

            km1=k-1;

            kp1=k+1;

            newplate(j,k)=(plate(jm1,km1)/2+plate(jm1,k)+...

            plate(jm1,kp1)/2+plate(j,km1)+plate(j,kp1)+...

            plate(jp1,km1)/2+plate(jp1,k)+plate(jp1,kp1)/2)/6;

        end

    end

    plate=newplate;

    if (0==rem(i,5))

        set(im,'cdata',plate)

        drawnow

    end

end

elapt=toc;

close

 

利用剖析器(profile viewer)对relaxzzy(300)进行运行分析,找出relaxzzy函数中最耗时的语句,记录其执行时间、被调用次数,并指出该语句是否可以被加速。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值