图片缩略图

放大

版本1.0.0.0 (4.13 KB) 里克几何
将鼠标转换为弹出式放大镜,以查看2D图形的细节。

303下载

更新2016年5月11日

查看许可协议

编者按:该文件是一个文件交换器周中精选

你是否希望MATLAB有一个放大镜,这样你就可以看到小区域的细节,而不必一次又一次地放大和缩小?只运行的放大。m',并将感兴趣的图形作为当前图形,然后使用鼠标左键弹出一个您控制的放大veiw。或者在点击的同时使用“Ctrl”键,打开一个放大镜,当释放图形时,放大镜会“锁定”到图形上(用于复制和打印图形时)。使用'<'和'>'键使放大镜更小或更大。使用“-”和“+”来减少或增加放大率。

引用作为

里克几何(2020)。放大(//www.tatmou.com/matlabcentral/fileexchange/5961-magnify), MATLAB中央文件交换。检索

意见及评分(99)

广汽欧阳的

太棒了!

陈曾

非常感谢

J田

谢谢这个功能,你能告诉我怎么退出这个功能吗?

克里斯

增加了一个简单的修改,允许独立的x/y放大。调整a2的设置用户数据在第31行有三个字段(2 2 0.2),调整64行调用a2_param(3)不(2)位置设置,设置67行调用a2_param(2)(1),然后添加两个额外的elseifs复制75 - 78行修改a2_param(2)与您选择的按钮(我去[和])。比单变焦更有用。

完李

很好的工具。它是非常有用的。谢谢你!

赫勒林

陈旸

宗庆后晶晶

Wan柯蒂斯

非常感谢。确实有用。

毫米

西苑妞妞

非常有帮助,非常感谢!

永阳

你好,当我把这个函数放到库的MATLAB2018版本中,我得到一个错误:计算Figure WindowButtonMotionFcn。但它适用于较低版本的软件。

dgreoiv clihest

两难的境地

王霍华德

这是非常有用的!

艾伦

伟大的功能。但是,我想在不关闭图形的情况下停止执行函数,但是没有找到一个干净的方法来这样做。
我有另一个问题,试图删除/删除放大框,通过右键单击或按住Ctrl,但可以通过替换第34-37行:

集(a2,“标签”,“MagBox”,“用户数据”,[2,0.2],“颜色”,得到(a1,“颜色”),“盒子”,“上”);放大倍数,帧大小

然后在第92行之后添加以下代码:

(eventdata.Key,'backspace')
删除(findobj (src.Children、“类型”、“轴”,“标签”,“MagBox”))

这将在添加的轴上添加一个标签,使其更容易识别,然后删除所有放大轴时,“删除”或“退格”被按下。

徐勇

Hailin杜

伟大的工作!谢谢你!

约翰尼·黄

xj z

易卜拉欣Bagci

citysky

陈的菜肴

xiaojiang王

如何移动锁定的放大镜?

本本

太好了!谢谢!

必要么

谢谢

大卫的太阳

太好了!谢谢~

Yiyong太阳

Jee李

谢谢

应张

美妙的,谢谢!

chunyang李

谢谢你!

羌族肖

伟大的

xiaping

非常感谢!

mms3airei

杰克

这确实帮了我大忙。

铁男行

谢谢你! !
它帮了我很多,如果你不介意的话,我在我的代码中做了一点小小的改变。
谢谢你!

FATCAT

谢谢你!

李余

哈瑞先生Kankanala

尼科莱诺依曼

amrkzp

呵呵

很好的~

pengxin汉

非常经验

马康

伟大的工作!它帮了我很多,我在代码中做了一点小小的改动。

f1 =图;
情节(1:10 0,randn(1100),(施用)/ 3,兰特(1300)),网格,
放大(f1)
%您必须在运行下一个代码之前完成图中的放大。假设我们只放大一次。
d = (f1,‘孩子’);
d(1)。将放大后的图形移动到指定位置
轴= d (2);
矩形(“位置”,[d (1) .XLim(1)、d (1) .YLim(1)、d (1) .XLim (2) - (1) .XLim(1)、d (1) .YLim (2) - (1) .YLim(1)),“线宽”,2、“线型”,‘-’,‘EdgeColor’,‘r’%马克原始图的放大部分

卡尔Witthoft

应该将“fullcrosshair”替换为“crosshair”,因为在R2015和以后(可能在R2014)中不支持前一种。金宝app

Pengli周

这是非常有用的!干得好!matlab现在更强大了

约瑟夫

迈克尔

当图形样式被截断时,它似乎不起作用——有什么想法吗?

要重现这种行为,请尝试以下不工作的方法:
集(0,“DefaultFigureWindowStyle”,“停靠”);
人物,情节(1:10 0,randn(1100),施用)/ 3,兰特(1300))
网格;放大
但如果你回到设置(0,'DefaultFigureWindowStyle','normal')这样就很好了。

凤鸣

非常感谢!

越南盾

由于男人!这是非常聪明的!

Amr哈姆萨

太棒了! !

阿里

这对我的论文非常有用,谢谢。伟大的工作!

肖恩·阿切尔

完美! ! ! !

Xiangchun

不错的工作。
如何在不关闭的情况下将其与当前图形分离?

谢谢!

马丁•福克斯

Nilimb

优秀的代码。我如何扩展这个到一个图像内的uipanel上的图形?

弗朗索瓦

维克多P

太好了!谢谢!

尤科恩

优秀的

尤科恩

好^ _ ^

在我的例子中,y轴是对数缩放的,似乎只是一个小小的修改,如下所示

取代
集(a2, YLim, a1_cp (2) + (1 / a2_param (1)) * (a2_pos (4) / a1_pos (4)) * diff (get (a1, YLim)) *(-0.5 - 0.5))(在函数“ButtonMotionCallback”)
通过
集(a2, YLim, 10。^ (log10 (a1_cp (2) + (1 / a2_param (1)) * (a2_pos (4) / a1_pos (4)) * log10 (Ylima1 (2) / Ylima1 (1)) * (-0.5 - 0.5)))

Evgeny公关

我做了以下更改,以正常工作:

在==>放大>ButtonDownCallback在39
设置((a2,‘孩子’),…
——“线宽”,2);

+ line_obj = findobj(a2, 'Type', 'line');
+如果~ isempty (line_obj)
+ set(line_obj, 'LineWidth', 2);
+结束

Evgeny公关

很好的功能!但是有一个小问题。对功能中的图像进行操作出现错误:

> > imshow (im, []);
> >放大;
? ?使用==>设置时出错
在“image”类中没有“LineWidth”属性。

错误在==>放大>ButtonDownCallback在39
设置(获取(a2,‘孩子’),…

这样一个错误函数在鼠标移动后继续正常工作。
我认为有必要检查坐标轴上的物体是否为图像并消除直线属性的变化。

pangyuteng

检测出

优秀的工作。我想它需要另一个修订来处理在新版本的Matlab中暴露出来的一些bug。

我使用imshow()函数,它给我一个错误:

在“image”类中没有“LineWidth”属性。
错误在==>放大>ButtonDownCallback在39
设置(获取(a2,‘孩子’),…

当然,我可以通过删除这行代码轻松解决这个问题。而且,Ctrl键似乎离开了图像上的方框。另一件需要改变的事情是将第二个轴的XTick和YTick设置为[]:

set(a2, 'XTick', [], 'YTick', []);

再次,良好的工作!

qooroo

这是一个很棒的应用程序,但是当我用它查看plotyy图表时,它会删除一组数据。有什么值得考虑的吗?

-qooroo

托德Welti

我也喜欢它,但当x轴是基于对数的时,它似乎不太好用。这就是我所使用的全部(频率通常是这样绘制的)。我看了代码,但不确定它会花多长时间,我使mod…

穆罕默德Elmorsy

优秀的,美妙的函数

阿卡什B

整洁的! !谢谢!

Lissa

Lissa

佛法

这真是太棒了。
我不确定我是否做错了,ctrl+点击使方框停留在图上,如果我想要在相同的轴上绘制另一个图形,我如何删除它。

马丁

这看起来非常有用,有人在MATLAB R2007a的后续版本中看到过它的问题吗?缩放区域不在图的上方,所以无法看到…

扎马Aldahiyat

极好的,等等。

吉姆·法伦

在GUI中处理鼠标按钮运动和使用'UserData'的优秀说明。除了学习之外,它还为我自己的GUI开发节省了时间。

谢谢。
j·法伦

萨米的Murad

很好,真的很有帮助

Hyway阴

非常好!

Dinesh Appya

优秀的

戈登•迪克斯

非常有用的代码。伟大的工作!

Yvgeny Shvarzman

如果有人能告诉我,我是否可以用这个代码放大其他程序(例如powerpoint的细节)?
谢谢

小工具

Meche新星

我通过设置“标准化”单元解决了这个问题。在一个gui中使用多个轴可以很好地工作。问题:
如何删除一个剩余的窗口,如果你
偶尔按一下鼠标右键?

达芙妮W

这是一个很好的工具!谢谢!
对于那些需要它的工作与图像,只需注释出线宽度:
%设置((a2,‘孩子’),…
%“线宽”,2);
这样问题就解决了。

我现在试图弄明白的是,如何使它在具有多个轴的gui中工作。似乎出于某种原因把放大的图像放在了gui的边缘。什么好主意吗?

李Jay Fingersh

非常好的应用程序,谢谢!我稍微修改了一下控件。现在,方向键分别控制每个轴的放大,而方括号控制两者,+/-键控制窗口大小。

Shanrong张

伟大的工作!MATLAB应该添加它作为一个标准图标在他们的图形面板…

一个小注释:如果您可以在第一句“if (nargin == 0), f1 = gcf;”之后添加一句话“figure(f1);”结束;,它应该更方便。这样,用户选择的图形或当前图形就会自动弹出并“放大”。

谢谢分享!

布雷特Shoelson

我同意次郎的建议,以及小组的共识,这是一个非常好的功能!

汪东城Doke

非常好!一个评论:

如果你可以在你设置线宽之前做一个检查,以防有些对象没有这个属性(例如图像,照明等)。我可以用这个来放大图像文件。

马塞尔ø西利

很好!

约翰D 'Errico

在1到5的范围内,我把这个设为6。

Vicky Svidenko

哇!太好了!

克里斯蒂娜•赫伯特

非常酷的

Tsakani Lotten

辉煌!

康Dong-il

你做了我真正需要的谢谢你!

詹姆斯·古德温

非常非常好!

法赫德艾尔·马哈茂德

确实很棒的功能!恭喜你!

亚历克斯Podgaetsky

优秀的! !

更新

1.0.0.0

BSD许可

MATLAB版本兼容性
创建R14SP1
与任何版本兼容
平台的兼容性
窗户 macOS Linux