资源简介
matlab局部方法辅助工具源码,直接解压放到有你的工程目录下,就可以使用
代码片段和文件信息
function magnify(f1)
%
%magnify(f1)
%
% Figure creates a magnification box when under the mouse
% position when a button is pressed. Press ‘+‘/‘-‘ while
% button pressed to increase/decrease magnification. Press
% ‘>‘/‘<‘ while button pressed to increase/decrease box size.
% Hold ‘Ctrl‘ while clicking to leave magnification on figure.
%
% Example:
% plot(1:100randn(1100)(1:300)/3rand(1300)) grid on
% magnify;
% Rick Hindman - 7/29/04
if (nargin == 0) f1 = gcf; end;
set(f1 ...
‘WindowButtonDownFcn‘ @ButtonDownCallback ...
‘WindowButtonUpFcn‘ @ButtonUpCallback ...
‘WindowButtonMotionFcn‘ @ButtonMotionCallback ...
‘KeyPressFcn‘ @KeyPressCallback);
return;
function ButtonDownCallback(srceventdata)
f1 = src;
a1 = get(f1‘CurrentAxes‘);
a2 = copyobj(a1f1);
set(f1 ...
‘UserData‘[f1a1a2] ...
‘Pointer‘‘fullcrosshair‘ ...
‘CurrentAxes‘a2);
set(a2 ...
‘UserData‘[20.2] ... %magnification frame size
‘Color‘get(a1‘Color‘) ...
‘Box‘‘on‘);
xlabel(‘‘); ylabel(‘‘); zlabel(‘‘); title(‘‘);
set(get(a2‘Children‘) ...
‘LineWidth‘ 2);
set(a1 ...
‘Color‘get(a1‘Color‘)*0.95);
set(f1 ...
‘CurrentAxes‘a1);
ButtonMotionCallback(src);
return;
function ButtonUpCallback(srceventdata)
H = get(src‘UserData‘);
f1 = H(1); a1 = H(2); a2 = H(3);
set(a1 ...
‘Color‘get(a2‘Color‘));
set(f1 ...
‘UserData‘[] ...
‘Pointer‘‘arrow‘ ...
‘CurrentAxes‘a1);
if ~strcmp(get(f1‘SelectionType‘)‘alt‘)
delete(a2);
end;
return;
function ButtonMotionCallback(srceventdata)
H = get(src‘UserData‘);
if ~isempty(H)
f1 = H(1); a1 = H(2); a2 = H(3);
a2_param = get(a2‘UserData‘);
f_pos = get(f1‘Position‘);
a1_pos = get(a1‘Position‘);
[f_cp a1_cp] = pointer2d(f1a1);
set(a2‘Position‘[(f_cp./f_pos(3:4)) 0 0]+a2_param(2)*a1_pos(3)*[-1 -1 2 2]);
a2_pos = get(a2‘Position‘);
set(a2‘XLim‘a1_cp(1)+(1/a2_param(1))*(a2_pos(3)/a1_pos(3))*diff(get(a1‘XLim‘))*[-0.5 0.5]);
set(a2‘YLim‘a1_cp(2)+(1/a2_param(1))*(a2_pos(4)/a1_pos(4))*diff(get(a1‘YLim‘))*[-0.5 0.5]);
end;
return;
function KeyPressCallback(srceventdata)
H = get(gcf‘UserData‘);
if ~isempty(H)
f1 = H(1); a1 = H(2); a2 = H(3);
a2_param = get(a2‘UserData‘);
if (strcmp(get(f1‘CurrentCharacter‘)‘+‘) | strcmp(get(f1‘CurrentCharacter‘)‘=‘))
a2_param(1) = a2_param(1)*1.2;
elseif (strcmp(get(f1‘CurrentCharacter‘)‘-‘) | strcmp(get(f1‘CurrentCharacter‘)‘_‘))
a2_param(1) = a2_param(1)/1.2;
elseif (strcmp(get(f1‘CurrentCharacter‘)‘<‘) | strcmp(get(f1‘CurrentCharacter‘)‘‘))
a2_param(2) = a2_param(2)/1.2;
elseif (strcmp(get(f1‘CurrentCharacter‘)‘>‘) | strcmp(get(f1‘CurrentCharacter‘)‘.‘))
a2_param
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4227 2017-03-19 10:20 magnify.m
- 上一篇:retinex的MATLAB实现程序
- 下一篇:半监督分类算法源程序
评论
共有 条评论