⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mminterp.m

📁 电子血压计的显示程序,用MATLAB编写
💻 M
字号:
function y=mminterp(tab,col,val)
%MMINTERP 1-D Table Search by Linear Interpolation
%Y=MMINTERP(TAB,COL,VAL)linearly interpolates th table 
%TAB searching for the scalar value VAL in the column COL 
%ALL crossings are found and TAB (:,COL)need not be monotonic
%Each crossing is returned as a separate row in Y and Y has as
%many columns as TAB.Naturelly,the column COL of Y contains
%the Value VAL.If VAL os not found in the table,Y=[].

%Coppyright(c) 1996 by prentice-Hall,Inc.
[rt,ct]=size(tab);
if length(val)>1,error('VAL must be a scalar.'),end
if col>ct|col<1,error('Chosen column outside table width.'),end
if rt<2,error('table too small or not oriented in columns.'),end
above=tab(:,col)>val;                        %True where>VAL
below=tab(:,col)<val;                        %True where>VAL
equal=tab(:,col)==val;                    %True where=VAL

if all(above==0)|all(below==0),              %handle simplest case
    y=tab(find(equal),:);return
end
pslope=find(below(1:rt-1)&above(2:rt));       %indices where slope is +
nslope=find(below(2:rt)&above(1:rt-1));      %indices where slope is -

ib=sort([pslope;nslope+1]);                   %put indices below in order
ia=sort([nslope;pslope+1]);                   %put indices above in order
ie=find(equal);                               %indices where equal to val

[tmp,ix]=sort([ib,ie]);                       %find where equals fit in result
ieq=ix>length(ib)                             %True where equals values fit
ry=length(tmp);                               %#of rows in result y
y=zeros(ry,ct);                               %poke data into a zero matri
alpha=(val-tab(ib,col))./(tab(ia,col)-tab(ib,col));
alpha=alpha(:,ones(1,ct));                    %duplicate for all columns
y(~ieq,:)=alpha.*tab(ia,:)+(1-alpha).*tab(ib,:);  %equal values
y(ieq,:)=tab(ie,:);
y(:,col)=val*ones(ry,1);                      %remove roundoff error

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -