图片缩略图

放大

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

307下载

更新2016年5月11日

查看许可协议

编者按:此文件是文件兑换挑选本周

曾经希望MATLAB有一个放大镜,这样您就可以查看您的地块的一个小区域的细节,而不必一次又一次地放大和缩小?只运行的放大。M ',并将感兴趣的图形作为当前图形,然后使用鼠标左键调出一个您控制的放大视图。或者在点击的同时使用“Ctrl”键,调出一个放大镜,当图形被释放时,它会“锁定”到图形上(用于复制和打印图形时)。使用“<”和“>”键将放大镜放大或缩小。使用“-”和“+”来降低或提高放大倍数。

引用

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

意见及评分(104.

亚伦·弗里曼

谢谢人,这正是我正在寻找的。
https://www.wiscon-tech.com/air-classifier-zigzag-eparation/
我将优化我的产品基于这个文件。

yuge sun.

如何使用

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)与您选择的按钮(我去[和])。比单一缩放更有用。

彪李

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

Helly Lin.

济阳陈

宗景晶

Wan柯蒂斯

非常感谢。它确实有效。

毫米

志勇

西苑妞妞

非常有帮助,非常感谢!

永阳

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

dgreoiv clihest.

困境

王霍华德

这是非常有用的!

艾伦

伟大的功能。但是,我想停止执行功能而不关闭图形,但尚未找到这样做的干净方法。
尝试通过右键单击或持有“CTRL”删除/删除左侧放大框,但能够通过替换第34-37行:

SET(A2,'标签','magbox','userdata',[2,0.2],'颜色',get(a1,'颜色'),'box','开');%放大率,框架尺寸

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

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

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

埃里克徐

Hailin杜

伟大的工作!谢谢你!

Jonny Huang.

xj z

IBRAHIM BAGCI.

citysky

栾陈

小江王

如何移动锁定的放大镜?

宾馆

太好了!谢谢!

必要么

谢谢

大卫的太阳

那太棒了!THX〜

Yiyong太阳

Jee李

谢谢

英张

美妙的,谢谢!

chunyang李

谢谢你!

羌族肖

伟大的

xiaping.

非常感谢!

mms3airei

杰克

它真的很帮助我很多。

铁男行

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

FATCAT

谢谢你!

李玉

尼科莱诺依曼

AMRKZP.

呵呵

很好的~

彭鑫韩

非常经验

马康

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

f1 =图;
情节(1:100,Randn(1,100),(1:300)/ 3,Rand(1,300)),网格,
放大(f1)
%在运行下一个代码之前,您必须完成图中的放大.Assuming我们只是放大一次。
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现在更强大了

费尔南多esteves.

约瑟夫

迈克尔

它似乎不工作时,数字风格是停靠-任何想法为什么不?

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

凤鸣

非常感谢!

越南盾

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

Amr哈姆萨

太棒了! !

阿里

这对我的论文很有帮助,谢谢。伟大的工作!

肖恩·阿切尔

完美! !

湘春

干得好。
如何将其与当前图形分离而不关闭它?

谢谢!

马丁•福克斯

Nilimb

优秀的代码。如何将其扩展到图中Uipanel内的图像?

弗朗索瓦

维克多P.

太好了!谢谢!

尤科恩

优秀的

尤科恩

好^ _ ^

在我的例子中,y轴是对数比例的,看起来就像下面这样做一个小小的修改

取代
SET(A2,'YLIM',A1_CP(2)+(1 / A2_PARAM(1))*(A2_POS(4)/ A1_POS(4))* Diff(GET(A1,'YLIM'))* [ - 0.5 0.5])(在功能“buttonmotioncallback”)
通过
SET(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公关

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

in ==>放大>ButtonDownCallback在39
设置((a2,‘孩子’),…
- 'linewidth',2);

+ line_obj = findobj(a2, '类型','行');
+如果~ isempty (line_obj)
+ set(line_obj, 'LineWidth', 2);
+结束

Evgeny公关

很好的功能!但是有一个小问题。通过操作在函数中的图像有一个错误:

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

错误==>放大>按钮39的buttondownCallback
设置(获取(a2,‘孩子’),…

这样在出错后函数继续正常工作,鼠标移动。
我想,有必要检查轴上的对象是图像,并在该案例变化线的情况下。

Pangyuteng.

Bahram.

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

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

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

当然,我可以通过删除该行来轻松解决它。Ctrl键也似乎在图像上留下了盒子。一个人可能想要改变的另一件事是将第二个轴的xtick和ytick设置为[]:

set(a2,'xtick',[],'ytick',[]);

再次,良好的工作!

qooroo

很棒的应用程序,但是当我使用它时删除一组数据来查看Plotyy图。考虑的一个点?

-qooroo

托德Welti

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

穆罕默德Elmorsy

优秀的,美妙的函数

阿卡什B

整洁的! !谢谢!

Lissa

Lissa

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

马丁

这看起来非常有用,有人看到它在MATLAB R2007a的后期版本有任何问题吗?变焦区域不是位于地块上方,所以不能被看到…

Husam Aldahiyat.

一流等等

吉姆里顿

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

谢谢。
j·法伦

萨米的Murad

好的它真的很有帮助

Hyway阴

非常好!

dinesh appya.

优秀的

戈登迪克斯

非常有用的代码。做得好!

YVGENY Shvarzman

如果有人可以告诉我我是否可以使用此代码太放大了其他程序(对于考审Power Point细节)?
谢谢

小工具小工具

Meche新星

通过将单位设置为“归一化”,我已经解决了这个问题。在一个GUI中有几个轴工作。问题:
如何删除剩余的窗口,如果你
偶尔点击鼠标右键?

达芙妮W

这是一个很好的工具!谢谢!
对于那些需要它使用图像的人来说,只需用LIEWWIDTH注释出线路:
%set(get(a2,'儿童'),...
%'linewidth',2);
这就解决了问题。

我现在试图弄清楚的是,如何使它在一个有几个轴的gui内工作。出于某种原因,似乎把放大的图像放在gui的边缘。什么好主意吗?

李Jay Fingersh

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

Shanrong张

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

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

感谢楼主分享!

布雷特Shoelson

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

Jiro Doke.

非常好!一个评论:

如果您可以在设置违规状态之前可以进行检查,但如果有没有该属性的对象(例如,图像,照明等)。我可以用它来放大图像文件。

Marceløzeri.

很好!

约翰D 'Errico

在1到5的范围内,我将在6点。

Vicky Svidenko.

哇!太好了!

克里斯蒂娜Hebert.

很酷

Tsakani Lotten

辉煌!

康东尼尔

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

詹姆斯古德温

非常非常好!

法赫德艾尔·马哈茂德

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

Alex Podgaetsky.

优秀的! !

Matlab释放兼容性
创建R14SP1
与任何版本兼容
平台的兼容性
视窗 macOS Linux

社区寻宝

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

开始狩猎!