我有三個函數依次被主函數調用,其中最終結果是一個正弦(或任何其他)函數的移動顏色圖。主函數通過一個計時器對象來完成。Matlab定時器函數繪製一個函數
我能夠創建一個靜態圖,但不能根據我的計時器對象中提供的值更新它。
我得到以下錯誤消息:
錯誤而定時器「定時器19」
無效或刪除的對象評價TimerFcn。
對於主窗口中的代碼如下:
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
我在做什麼錯了?
你怎麼知道它沒有運行。根據您的代碼,「新」圖像數據將看起來與「舊」圖像數據相同,因爲「myMat_new」總是返回相同的輸出 – Suever
因此,想法是該圖應顯示更新的彩色映射正弦波,直到該程序退出循環。由於我沒有看到「移動」圖,我可以說代碼不起作用。 –
雖然您並未更新數據。您每次只需更換相同的數據 – Suever