Matlab 学习 2018.9.18

Matlab 学习 2018.9.18

  1. 控件联动,两个函数 get,set

function slider1_Callback(hObject, eventdata, handles)

v1=get(handles.slider1,'value');
s1=sprintf('%f',v1);
set(handles.edit1,'string',s1);

function edit1_Callback(hObject, eventdata, handles)

s1=get(handles.edit1,'string');
v1=str2double(s1);
set(handles.slider1,'value',v1);
  1. 函数 全局

    function my_callback_fcn(handles)
    global Type
    global Fs
    global N
    global x
    Fs=44100;
    dt=1/Fs;
    T=2;
    N=T/dt;
    t=linspace(0,T,N);
    s1=get(handles.edit1,‘string’);
    F=str2double(s1);
    s1=get(handles.edit2,‘string’);
    A=str2double(s1);
    if Type1
    x=0.5Arandn(1,N);
    end
    if Type
    2
    x=Asin(2piFt);
    end
    if Type3
    x=Asquare(2piFt);
    end
    if Type
    4
    x=Asawtooth(2piFt);
    end
    plot(handles.axes1,t,x,‘b’,‘linewidth’,2);
    axis(handles.axes1,[0,0.01,-1,1]);
    grid(handles.axes1);

  2. 调用函数

    global Type
    Type=2;my_callback_fcn(handles);

  3. 定时器
    timer
    matlab中使用定时器(timer)基本格式为
    t = timer(‘PropertyName1’, PropertyValue1, ‘PropertyName2’, PropertyValue2,…);
    start(t);

最简单的定时器一般指定以下属性:
TimerFcn ——指定定时器被触发时要执行的函数或语句
Period ——指定定时器的触发时间,单位为秒
ExecutionMode ——指定定时器的触发方式(触发一次,还是循环触发……),该属性有四个可选值,具体见matlab帮助
TasksToExecute ——指定定时器最多被触发的次数,该属性默认为inf,如果希望不停的循环执行,可以不指定该属性
tag ——一个字符串,可以任意指定,一般用于标志某个特定的定时器,以方便在程序中别的地方查找该定时器

在matlab命令窗口中输入下面语句,则将输出1到10,每隔1秒输出一次

x=1;
t = timer('TimerFcn','disp(x);x=x+1;', 'Period', 1, 'ExecutionMode', 'fixedSpacing', 'TasksToExecute', 10);
start(t);

与定时器相关的其他操作
delete(timer) %删除
disp(timer) %显示
get(timer) %获取属性
isvalid(timer) %检查有效性
set(timer) %设置属性
start %开始
startat %开始(可以指定开始时的某些参数)
stop %停止
timerfind %查找某个定时器
timerfindall %也是查找
wait %等待直到定时器被停止

猜你喜欢

转载自blog.csdn.net/tiansch/article/details/82753578