intfromstr_dot.m

来自「拥有matlab用户界面的卡尔曼滤波程序」· M 代码 · 共 50 行

M
50
字号
function s=intfromstr_dot(answer)
%Distill integers from a string,dot as -1;
p=1;q=1;k=0;v=0;i=1;
l=length(answer);
while i<=l-1
    if  isnumber(answer(i)) & ~isnumber(answer(i+1))
        k=k+1;
        s(k)=str2num(answer(i));
        i=i+1;
        
    elseif isnumber(answer(i)) & isnumber(answer(i+1))
        j=i;
        while j<=l & isnumber(answer(j));
            t(p)=str2num(answer(j));
            p=p+1;
            j=j+1;
        end
        for p=length(t):-1:1
            v=v+t(q)*10^(p-1);
            q=q+1;
        end
        k=k+1;
        s(k)=v;
        i=i+length(t);
        p=1;q=1;v=0;t=0;      
    elseif answer(i)=='.'
        k=k+1;
        s(k)=-1;
        i=i+1;
        while answer(i)=='.' & i<l
            i=i+1;
        end          
        
    else
        i=i+1;
    end
       
end
if i==l
    if isnumber(answer(i))
        k=k+1;
        s(k)=str2num(answer(i));
    elseif answer(i)=='.' & l>1 & answer(i-1)~='.'
        k=k+1;
        s(k)=-1;
    elseif answer(i)=='.' & l==1
        k=k+1;
        s(k)=-1;
    end
end

⌨️ 快捷键说明

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