报告: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次占时最多。