2016-05-17 3 views
0

У меня есть функция для таймера следующегоMatlab - отображение объекта на графике

HH = 0; MM = 0; SS = 0; 
timer = sprintf('%02d:%02d:%02d',HH,MM,SS); 
for p = 1:86400 
    SS = SS + 1; 
    if SS == 60 
     MM = MM + 1; 
     SS = 0; 
     pause(0.01) 
    end 
    if MM == 60 
     HH = HH + 1; 
     MM = 0; 
     pause(0.1) 
    end 
    HH; 
end 
disp(timer) 

Как я могу получить для отображения на графике, постоянно обновляется. Не удалось заставить его работать, используя функцию plot() или set().

+0

, так что вы хотите, чтобы значение таймера постоянно обновлялось, а затем какой тип графика вы используете для построения графика или просто хотите отобразить значение времени? – goldIs

ответ

2

Возможно, вы захотите отредактировать данные этого примера, основываясь на том, как вы хотите, чтобы таймер выглядел, и обратите внимание, что я просто положил pause(0.1) на каждую секунду часов, чтобы вы могли смотреть его быстрее, чем в реальном времени, как указано в вашем примере. Вы также можете настроить размер/цвет часов с разными аргументами на функцию text().

f = figure; 
HH = 0; MM = 0; SS = 0; 
timer = sprintf('%02d:%02d:%02d',HH,MM,SS); 
text(0.5,0.5,timer); %% adjust location of clock in graph using the first two arguments: (x,y) coordinates 

for p = 1:86400 
    SS = SS + 1; 
    pause(0.1); %% pause a fixed amount for each clock tick 
    if SS == 60 
     MM = MM + 1; 
     SS = 0; 
    end 
    if MM == 60 
     HH = HH + 1; 
     MM = 0; 
    end 
    timer = sprintf('%02d:%02d:%02d',HH,MM,SS); %% construct time string after all adjustments to HH, MM, SS 
    clf; %% clear previous clock display 
    text(0.5,0.5,timer); %% re-plot time to figure   
end 
+0

Спасибо за ответ, когда я запустил вашу функцию, возникает ошибка, что текст (0.5,0.5, таймер); индексы подстроки должны быть натуральными целыми или логическими целями. Пробовал модифицировать это на многие разные вещи, но все же повышал ту же ошибку или этот индекс превышал размеры матрицы. – Vladamir

+0

Решенный ~ забыл очистить переменные из последнего скрипта. – Vladamir

+0

Какую версию MATLAB вы используете? Похоже, что вы, возможно, случайно определили «текст» как массив ... Я бы попробовал «очистить все» и снова запустить его. – gariepy

Смежные вопросы