?? callchec.m
字號:
%[callcheck.m]
function callcheck(htext,str1,z,vchk1,vchk2)
cla,set(htext, 'string' ,[str1,sprintf( '%1.4g\' ,z)]); % 更新靜態文本框內容 <2>
dt=0.1;t=0:dt:15;N=length(t);y=step(1,[1 2*z 1],t);plot(t,y);
if vchk1 % 假如峰值框被選中 <4>
[ym,km]=max(y);
if km<(N-3) % 假如在設定時間范圍內能插值 <6>
k1=km-3;k2=km+3;k12=k1:k2;tt=t(k12);
yy=spline(t(k12),y(k12),tt); % 局部樣條插值 <8>
[yym,kkm]=max(yy); % 求更精確的峰值位置
line(tt(kkm),yym, 'marker' , '.' , ... % 畫峰值點 <10>
'markeredgecolor' , 'r' , 'markersize' ,20);
ystr=[ 'ymax = ' ,sprintf( '%1.4g\' ,yym)];
tstr=[ 'tmax = ' ,sprintf( '%1.4g\' ,tt(kkm))];
text(tt(kkm),1.05*yym,{ystr;tstr})
else % 假如在設定時間范圍內不能插值 <15>
text(10,0.4*y(end),{ 'ymax --> 1' ; 'tmax --> inf' })
end
end
if vchk2 % 假如上升時間框被選中 <19>
k95=min(find(y>0.95));k952=[(k95-1),k95];
t95=interp1(y(k952),t(k952),0.95); % 線性插值 <21>
line(t95,0.95, 'marker' , 'o' , 'markeredgecolor' , 'k' , 'markersize' ,6);
tstr95=[ 't95 = ' ,sprintf( '%1.4g\' ,t95)];
text(t95,0.65,tstr95)
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -