Matlab Timer函数用于绘制函数

时间:2017-10-06 11:37:32

标签: matlab plot timer visualization

我有三个函数,它们由main函数调用,其中最终结果是正弦(或任何其他)函数的移动颜色图。主要功能通过计时器对象完成此操作。

我能够创建静态图但无法根据我的计时器对象中提供的值进行更新。

我收到以下错误消息:

  

评估TimerFcn for timer' timer-19'时出错   无效或已删除的对象。

主窗口的代码如下:

clc; clear all;  close all;    
rows = 1;
cols = 30;    
t = timer('StartDelay', 0.05, 'Period', 0.05, 'TasksToExecute', 1000, ...
          'ExecutionMode', 'fixedRate');
t.StartFcn = {@window, rows, cols};
t.TimerFcn = {@window_timer};
t.StopFcn = @(x,y)disp('end');    
start(t)

定时器功能调用的函数代码:

function window_timer(obj, event)
    imgh = get(obj,'UserData');
    myMat = get(imgh,'CData');  

    myMat = myMat_new(myMat);

    set(imgh,'CData',myMat);
    drawnow;
    pause(0.02);
    set(obj,'UserData',imgh);
end

最后,用正弦函数替换随机矩阵值的函数

function [ myMat ] = myMat_new( myMat )    
    x = -pi:1/10:pi;
    myMat = sin(x);        
end

我做错了什么?

1 个答案:

答案 0 :(得分:0)

当您运行计时器时,会创建'obj',因此这行代码有效:

imgh = get(obj,'UserData');

但我没有看到任何部分显示imgh有一个属性'CData'。代码中的imgh是一个计时器对象而不是图形对象。