dfs.m

来自「cognitive radio model programme with MAT」· M 代码 · 共 66 行

M
66
字号

function [sys, x0, str, ts] = dfs(t, x, u, flag)

switch flag,
    case 0 
        [sys,x0, str, ts] = mdlInitializeSizes;
    case 3
        sys = mdlOutputs(t,x,u);
    case {1,2,4,9}
        sys = [];
    otherwise
        error(['Unhandled flag = ', num2str(flag)]);
                
end;

function [sys, x0, str, ts] = mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 1;
sizes.NumInputs = 1000;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0=[];
str=[];
ts=[-1,0];
function sys = mdlOutputs(t,x,u)
for i=501+200:501+280
    sel = 1;
    if u(i) < 0.2
        if i < 10+200+501
            for j=200+501:i+10
                if u(j) > 0.2
                    sel = 0;
                    break;
                end                
            end
        elseif i+10 >= 10+200+501 && i+10 < 280+501
            for j=i-10:i+10
                if u(j) > 0.2
                    sel = 0;
                    break;
                end
            end
        else
            for j=i-10:280+501
                if u(j) > 0.2
                    sel = 0;
                    break;
                end
            end
        end
        if sel == 1
            i
            sys = i;
            break;
        end
    end
end

if sel == 0
    sys = 0;
end

⌨️ 快捷键说明

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