我有三个函数,它们由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
我做错了什么?
答案 0 :(得分:0)
当您运行计时器时,会创建'obj',因此这行代码有效:
imgh = get(obj,'UserData');
但我没有看到任何部分显示imgh有一个属性'CData'。代码中的imgh是一个计时器对象而不是图形对象。