이 질문을 팔로우합니다.
- 팔로우하는 게시물 피드에서 업데이트를 확인할 수 있습니다.
- 정보 수신 기본 설정에 따라 이메일을 받을 수 있습니다.
오류 발생
페이지가 변경되었기 때문에 동작을 완료할 수 없습니다. 업데이트된 상태를 보려면 페이지를 다시 불러오십시오.
이전 댓글 표시
0 개 추천
Please Help me.
I have the program of monitoring signal which I use plot function to view the signal. Because I use the timer function, the plot changed every second. What I want is I can save that plot for every second, let say for 10 seconds. What will I to do so the plots are saved in a file with different named? say file 1.tiff for signal 1, file 2.tiff for signal 2, and so on.
채택된 답변
Friedrich
2011년 8월 10일
Hi,
in the function which is called from the timer (TimerFcn callback) before updating the plot you can save it. Lets say the TimerFcn is named
timer('TimerFcn',@my_func, 'Period', 1.0);
Than you create my_func as follows
function my_func(obj,event )
This will pass the timer object to my_func in every call. The timer object has a property called 'TasksExecuted'. With this property you can create dynamic file names easily as follows:
%before updating the plot
print(handle_to_plot,'-dtiff',['signal_',num2str(get(obj,'TasksExecuted'))]);
%update plot
More specific:
t = timer('TimerFcn',@my_func, 'Period', 1.0,'ExecutionMode','fixedRate');
start(t);
function my_func(obj,event )
get(obj,'TasksExecuted')
end
댓글 수: 10
I've tried your codes, but the result is this
Error using ==> coba>mytimer
Too many input arguments.
the figure's name is coba
and the timer's name is mytimer
Could you post your code? The example given above works fine. Try to take the main idea and put it in your code.
function timer_Callback(hObject, eventdata, handles)
T1=timer;
T2=timer;
set(T1,'ExecutionMode','fixedRate','BusyMode','drop','Period',1);
set(T2,'ExecutionMode','fixedRate','BusyMode','drop','Period',1);
set(T1, 'TimerFcn', @(obj, event) timerkirim(obj, event, handles));
set(T2, 'TimerFcn', @(obj, event) mytimer(obj, event, handles));
setappdata(0,'T1',T1);
setappdata(0,'T2',T2);
start(T1);
start(T2);
function mytimer(obj, event)
print(handles.axes1,'-dtiff',['signal_',num2str(get(obj,'TasksExecuted'))]);
the timerkirim is timer to update the plot
Your TimerFcn passed 3input args
set(T1, 'TimerFcn', @(obj, event) timerkirim(obj, event, handles));
But the mytimer function has only two. This would match with the error you get: Too many input arguments.
Try it that way:
set(T2, 'TimerFcn', {@mytimer,handles});
function mytimer(obj, event, handles)
print(handles.axes1,'-dtiff',['signal_',num2str(get(obj,'TasksExecuted'))]);
Look here for the right callback function syntax:
http://www.mathworks.com/help/releases/R2011a/techdoc/matlab_prog/f9-39541.html#f9-42494
Did you try ma suggestions? This wont work
set(T1, 'TimerFcn', @(obj, event) timerkirim(obj, event, handles));
set(T2, 'TimerFcn', @(obj, event) mytimer(obj, event, handles));
For T2 it have to look like this
set(T2, 'TimerFcn', {@mytimer,handles});
and the mytimer function must look like this
function mytimer(obj, event, handles)
print(handles.axes1,'-dtiff',['signal_',num2str(get(obj,'TasksExecuted'))]);
Still got error:
Error using ==> print at 310
Handle Graphics handle must be a Figure.
handles.axes1 is an axis handle. but print need the handle of the figure.
It worked if I write this code:
print(coba,'-dtiff',['signal_',num2str(get(obj,'TasksExecuted'))]);
At first moment there is some crush maybe because the program locating the destination image file but after a while it work with some vibration.
But it fine for me.
Thank you very much Mr.Friedrich..
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
