编者按:此文件是文件兑换挑选本周
曾经希望MATLAB有一个放大镜,这样您就可以查看您的地块的一个小区域的细节,而不必一次又一次地放大和缩小?只运行的放大。M ',并将感兴趣的图形作为当前图形,然后使用鼠标左键调出一个您控制的放大视图。或者在点击的同时使用“Ctrl”键,调出一个放大镜,当图形被释放时,它会“锁定”到图形上(用于复制和打印图形时)。使用“<”和“>”键将放大镜放大或缩小。使用“-”和“+”来降低或提高放大倍数。
里克几何(2021)。放大(//www.tatmou.com/matlabcentral/fileexchange/5961-magnify), MATLAB中央文件交换。检索.
谢谢人,这正是我正在寻找的。
https://www.wiscon-tech.com/air-classifier-zigzag-eparation/
我将优化我的产品基于这个文件。
如何使用
谢谢你!
不错的
如何退出?
太棒了!
非常感谢
谢谢您的精彩功能,请问如何退出这个功能?
增加了一个简单的修改,允许独立的x/y放大。调整a2的设置用户数据在第31行有三个字段(2 2 0.2),调整64行调用a2_param(3)不(2)位置设置,设置67行调用a2_param(2)(1),然后添加两个额外的elseifs复制75 - 78行修改a2_param(2)与您选择的按钮(我去[和])。比单一缩放更有用。
很好的工具。它是非常有用的。谢谢你!
非常感谢。它确实有效。
非常有帮助,非常感谢!
你好,当我把这个函数放入MATLAB2018版本的库,我得到一个错误:Calculate Figure WindowButtonMotionFcn。但它适用于较低版本的软件。
这是非常有用的!
伟大的功能。但是,我想停止执行功能而不关闭图形,但尚未找到这样做的干净方法。
尝试通过右键单击或持有“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”))
这将标签添加到添加的轴上,使其更容易识别,然后按下“删除”或“退格”时删除所有放大轴。
伟大的工作!谢谢你!
如何移动锁定的放大镜?
太好了!谢谢!
谢谢
那太棒了!THX〜
谢谢
美妙的,谢谢!
谢谢你!
伟大的
非常感谢!
它真的很帮助我很多。
谢谢你! !
它帮助了我很多,如果您不介意的话,我在我的代码中做了一点修改。
谢谢你!
谢谢你!
很好的~
非常经验
伟大的工作!它帮助了我很多,我在代码中做了一点修改。
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’%马克原始图的放大部分
应该将“fullcrosshair”替换为“crosshair”,因为前者在R2015和以后不支持(可能在R2014也不支持)金宝app
这是非常有用的!干得好!matlab现在更强大了
它似乎不工作时,数字风格是停靠-任何想法为什么不?
要重现该行为,请尝试以下方法:
集(0,“DefaultFigureWindowStyle”,“停靠”);
人物,情节(1:10 0,randn(1100),施用)/ 3,兰特(1300))
网格;放大
但如果你回到设置(0,'DefaultFigureWindowStyle','normal');然后它就可以正常工作了。
非常感谢!
由于男人!这是非常聪明的!
太棒了! !
这对我的论文很有帮助,谢谢。伟大的工作!
完美! !
干得好。
如何将其与当前图形分离而不关闭它?
谢谢!
优秀的代码。如何将其扩展到图中Uipanel内的图像?
太好了!谢谢!
优秀的
好^ _ ^
在我的例子中,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])))
我做了以下改变,以正常工作:
in ==>放大>ButtonDownCallback在39
设置((a2,‘孩子’),…
- 'linewidth',2);
+ line_obj = findobj(a2, '类型','行');
+如果~ isempty (line_obj)
+ set(line_obj, 'LineWidth', 2);
+结束
很好的功能!但是有一个小问题。通过操作在函数中的图像有一个错误:
> > imshow (im, []);
> >放大;
???使用==> SET错误
在“image”类中没有“LineWidth”属性。
错误==>放大>按钮39的buttondownCallback
设置(获取(a2,‘孩子’),…
这样在出错后函数继续正常工作,鼠标移动。
我想,有必要检查轴上的对象是图像,并在该案例变化线的情况下。
优秀的工作。我想它需要另一个修订来解决一些在新版本的Matlab中暴露出来的bug。
我用imshow()使用这个函数,它给了我一个错误:
在“image”类中没有“LineWidth”属性。
错误==>放大>按钮39的buttondownCallback
设置(获取(a2,‘孩子’),…
当然,我可以通过删除该行来轻松解决它。Ctrl键也似乎在图像上留下了盒子。一个人可能想要改变的另一件事是将第二个轴的xtick和ytick设置为[]:
set(a2,'xtick',[],'ytick',[]);
再次,良好的工作!
很棒的应用程序,但是当我使用它时删除一组数据来查看Plotyy图。考虑的一个点?
-qooroo
我也喜欢它,但是当x轴以对数为基础时,它似乎不太好用。这几乎是我使用的全部(频率通常是这样绘制的)。我看了代码,但不确定要花多长时间我使那个mod.....
优秀的,美妙的函数
整洁的! !谢谢!
这真是太棒了。
我不确定如果我做错了,ctrl+点击使框留在图上,我如何删除它,如果想在相同的坐标轴上绘制另一个图。
这看起来非常有用,有人看到它在MATLAB R2007a的后期版本有任何问题吗?变焦区域不是位于地块上方,所以不能被看到…
一流等等
在GUI中处理鼠标按钮移动和使用“UserData”的优秀指令。除了学习之外,它还为我自己的GUI的开发节省了时间。
谢谢。
j·法伦
好的它真的很有帮助
非常好!
优秀的
非常有用的代码。做得好!
如果有人可以告诉我我是否可以使用此代码太放大了其他程序(对于考审Power Point细节)?
谢谢
通过将单位设置为“归一化”,我已经解决了这个问题。在一个GUI中有几个轴工作。问题:
如何删除剩余的窗口,如果你
偶尔点击鼠标右键?
这是一个很好的工具!谢谢!
对于那些需要它使用图像的人来说,只需用LIEWWIDTH注释出线路:
%set(get(a2,'儿童'),...
%'linewidth',2);
这就解决了问题。
我现在试图弄清楚的是,如何使它在一个有几个轴的gui内工作。出于某种原因,似乎把放大的图像放在gui的边缘。什么好主意吗?
非常好的应用程序,谢谢!我稍微修改了一下控制。现在,箭头键分别控制每个轴的放大,方括号控制两个轴的放大,+/-键控制窗口的大小。
伟大的工作!MATLAB应该添加它作为一个标准图标在他们的图形面板…
一个小注释:如果您可以在第一个句子“if (nargin == 0), f1 = gcf;”之后添加一句话“figure(f1);”句号;”,应该更方便。这样,用户选择的图形或当前的图形就会自动弹出进行“放大”。
感谢楼主分享!
我赞同二郎的建议,以及小组的共识,这是一个非常好的功能!
非常好!一个评论:
如果您可以在设置违规状态之前可以进行检查,但如果有没有该属性的对象(例如,图像,照明等)。我可以用它来放大图像文件。
很好!
在1到5的范围内,我将在6点。
哇!太好了!
很酷
辉煌!
你做了我真正需要的..谢谢
非常非常好!
确实很棒的功能!恭喜你!
优秀的! !