图片缩略图

放大

version 1.0.0.0 (4.13 KB) by 里克几何
将鼠标变成一个弹出放大镜,查看2D情节的细节。
4.8
80年评级

479下载

更新2016年5月11日

查看许可协议

编者按:这个文件是一个文件交换本周精选

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

引用作为

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

意见及评分(105

塞吉奥Yanez-Pagans

太棒了!

亚伦·弗里曼

谢谢,伙计,这正是我想要的。
https://www.wiscon-tech.com/air-classifier-zigzag-separation/
我将优化我的产品基于这个文件。

yuge太阳

如何使用

ruilin郭

谢谢你!

赵主任

不错的

炜彬 陈

如何退出?

广汽欧阳的

太棒了!

陈曾

非常感谢

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版本的库中,我得到一个错误:Calculate Figure WindowButtonMotionFcn。但它适用于较低版本的软件。

dgreoiv clihest

两难的境地

王霍华德

这是非常有用的!

艾伦

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

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

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

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

这将添加一个标签到添加的轴,使它更容易识别,然后删除所有放大轴时,'delete'或'backspace'被按下。

徐勇

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)。Position=[0 0.5 d(1).Position(3) d(1).Position(4)];%将放大后的数字移动到指定位置
轴= 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))
网格;放大
但是如果你回到set(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, []);
> >放大;
???使用==>设置时出错
在“图像”类中没有“LineWidth”属性。

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

因此,错误函数在鼠标移动时继续正常工作。
我认为,有必要检查坐标轴上的物体是图像,在这种情况下消除直线属性的变化。

pangyuteng

检测出

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

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

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

当然,我可以通过删除这行代码轻松地解决它。同时,Ctrl键似乎会离开图像上的框。另一件可能需要更改的事情是将第二个轴的XTick和YTick设置为[]:

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

再次,良好的工作!

qooroo

这是一个很棒的应用,但当我用它来查看曲线图时,它会删除一组数据。值得考虑的一点?

-qooroo

托德Welti

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

穆罕默德Elmorsy

优秀的,美妙的函数

阿卡什B

整洁的! !谢谢!

Lissa

Lissa

佛法

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

马丁

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

扎马Aldahiyat

极好的,等等。

吉姆·法伦

在GUI中处理鼠标按钮运动和使用“UserData”的出色指导。除了学习,它还为我自己的GUI开发节省了时间。

谢谢。
j·法伦

萨米的Murad

很好,很有帮助

Hyway阴

非常好!

Dinesh Appya

优秀的

戈登•迪克斯

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

Yvgeny Shvarzman

如果有人能告诉我,我是否可以使用这段代码来放大其他程序(例如幻灯片细节)?
谢谢

小工具

Meche新星

我已经通过设置单位为“标准化”解决了这个问题。在一个gui内的多个轴上工作很好。问题:
如何删除剩余的窗口,如果你
偶尔按下鼠标右键?

达芙妮W

这是一个优秀的工具!谢谢!
对于那些需要它来处理图像的人,只需用LineWidth注释掉这一行:
%设置((a2,‘孩子’),…
%“线宽”,2);
这就解决了问题。

我现在想弄清楚的是,如何让它在一个有几个轴的gui中工作。因为某些原因,似乎把放大的图像放在gui的边缘。什么好主意吗?

李Jay Fingersh

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

Shanrong张

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

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

谢谢分享!

布雷特Shoelson

我赞同Jiro的建议,以及小组一致认为这是一个非常好的功能!

汪东城Doke

非常好!一个评论:

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

马塞尔ø西利

很好!

约翰D 'Errico

从1到5,我把它标为6。

Vicky Svidenko

哇!太好了!

克里斯蒂娜•赫伯特

非常酷的

Tsakani Lotten

辉煌!

康Dong-il

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

詹姆斯·古德温

非常非常好!

法赫德艾尔·马哈茂德

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

亚历克斯Podgaetsky

优秀的! !

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

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!