matlab 函数调试实验,matlab实验3 科学计算与数据处理 实验3 MATLAB程序设计实验(2)...

报告:https://download.csdn.net/download/qq_35340961/10708415

讲义:https://download.csdn.net/download/qq_35340961/10707936

脚本:X=0:0.1:3

Y=x+x-3

Y =

1 至 6 列

-3.0000   -2.8000   -2.6000   -2.4000   -2.2000   -2.0000

7 至 12 列

-1.8000   -1.6000   -1.4000   -1.2000   -1.0000   -0.8000

13 至 18 列

-0.6000   -0.4000   -0.2000         0    0.2000    0.4000

19 至 24 列

0.6000    0.8000    1.0000    1.2000    1.4000    1.6000

25 至 30 列

1.8000    2.0000    2.2000    2.4000    2.6000    2.8000

31 列

3.0000

函数:

function [y] = untitled2(inputArg1)

x = inputArg1;

y = x+x-3;

end

>> y=untitled2(x)

y =

1 至 13 列

-3.0000   -2.8000   -2.6000   -2.4000   -2.2000   -2.0000   -1.8000   -1.6000   -1.4000   -1.2000   -1.0000   -0.8000   -0.6000

14 至 26 列

-0.4000   -0.2000         0    0.2000    0.4000    0.6000    0.8000    1.0000    1.2000    1.4000    1.6000    1.8000    2.0000

27 至 31 列

2.2000    2.4000    2.6000    2.8000    3.0000

2

function  foxx(x,y)

%UNTITLED5 ´Ë´¦ÏÔʾÓйش˺¯ÊýµÄÕªÒª

%   ´Ë´¦ÏÔʾÏêϸ˵Ã÷

sum=0;

for i=1:10

sum=sum+i;

end

sum1=0;

while i>0

sum1=sum1+1;

i=i-1;

end

if x>y

ss=x;

else

ss=y;

end

switch x

case 1

ss=ss+1;

case 2

ss=ss+10;

otherwise

ss=ss+10086;

end

try

sss=x/y;

catch

sss=y;

print('y=0?')

end

sum

sum1

ss

sss

end

>> foxx(2,0)

sum =

55

sum1 =

10

ss =

12

sss =

Inf

3: function   re()

%UNTITLED9 ´Ë´¦ÏÔʾÓйش˺¯ÊýµÄÕªÒª

%   ´Ë´¦ÏÔʾÏêϸ˵Ã÷

x=input('input:');

keyboard

disp('end234')

for i=0:10

i

warning('ÔÝÍ£2Ãë')

pause(2)

if i==2

break

end

end

try

dd=[1 2 3 45 ]*[2 3 4 5 6 7 88 9 9 0]

catch

A=lasterr

end

lastwarn

for i=0:10

if i == 6

return

end

if i<3

continue

end

fprintf('i=%d\n',i)

end

error('³ö´íÁË')

end

>> re

input:6

K>> dbcunt

错误使用 keyboard

未定义函数或变量 'dbcunt'。

是不是想输入:

K>> dbcont

end234

i =

0

警告: 暂停2秒

> In re (line 9)

i =

1

警告: 暂停2秒

> In re (line 9)

i =

2

警告: 暂停2秒

> In re (line 9)

A =

'错误使用 re (line 17)

用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。'

ans =

'暂停2秒'

i=3

i=4

i=5

4

>> eval('y=feval(@sin,2)')

y =

0.9093

5.源程序:

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

%本程序供调试实验用

xmu=mean(x);

xstd=std(x);

[nn,xx]=hist(x);

ifnargout==0

barzzy0(nn,xx,xmu,xstd)

end

functionbarzzy0(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

错误使用 plot

向量长度必须相同。

出错 Debug_Test>barzzy0 (line 18)

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

出错 Debug_Test (line 7)

barzzy0(nn,xx,xmu,xstd)

分析:向量长度必须相同;输出查看xxum yy xxl xxR数据 为1*2 1*26 1*2 1*2 xxum与yy长度不一致

修改后:function[nn,xx,xmu,xstd]=Debug_Test(x)

%±¾³ÌÐò¹©µ÷ÊÔʵÑéÓÃ

xmu=mean(x);

xstd=std(x);

[nn,xx]=hist(x);

ifnargout==0

barzzy0(nn,xx,xmu,xstd)

end

end

functionbarzzy0(nn,xx,xmu,xstd)

clf,

bar(xx,nn);holdon

Ylimit=get(gca,'YLim');

yy=0:Ylimit(2);

[a,b]=size(yy);

xxmu=unifrnd(xmu,xmu,1,b);

xxL=unifrnd((xmu-xstd),(xmu-xstd),1,b);

xxR=unifrnd((xmu+xstd),(xmu+xstd),1,b);

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

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

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

holdoff

end

ans =

1     3     4    16    21    19    20     9     6     1

6.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

由上图可看出18.19.20行调用3000000次, 26行60次占时最多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值