3 Matlab问题
1 - 有没有人知道是否有相应的
#pragma GCC poison variable_name
在matlab中,如果它在代码中发现从此时开始使用variable_name,它会导致matlab错误?
另外两个不太相关的问题,因为我仍然无法相信 .
2 - 无论如何都要链接命令
imagesc(I1_avg_crop, [bg_value multiplier2*std_value+bg_value]);
除了做之外,特别是一个数字
set(0,'CurrentFigure',fig3);
imagesc(I1_avg_crop, [bg_value multiplier2*std_value+bg_value]);
它之前呢?
3 - getframe()(或者类似的)实际上可以在图中找到什么而不是“做一个屏幕捕获”?,因为当图形窗口被移动时它不能很好地工作?
(我正在编辑某些代码,我是matlab的新手,所以如果这些都是愚蠢的问题我会事先道歉,它只是我找不到我想要的文档)
编辑:额外问题手册说
set(0,'CurrentFigure',h);
使数字h为当前,但不会相对于其他数字改变其可见性或堆叠 . 这仍然适用于Mac OS X,因为它似乎仍然迫使它成为顶级?
2 回答
(1)不,不可能“本地”毒害变量 . 但是,您可以执行以下解决方法:定义这样的类:
然后你可以调用
variable_name = poison('variable_name')
并获得相同的效果 - 如果variable_name
被覆盖,它会触发对象的delete方法并抛出错误,如果有尝试索引,或者在算术操作中,则存在一般错误 .(2)您可以在函数调用中显式设置图像的父级(传递轴句柄,例如通过
axHandle = axes('Parent',fig3);
获取),这样可以避免调用图形 . 但是,您不能这样做并设置色彩映射缩放 . 因此,你必须要么使用或者,如果您没有访问图像处理工具箱,则需要使用
image
(3)如果使用轴手柄调用
getframe
,它应该能够捕获轴的内容 - 除非您将图形移动到第二个屏幕上,在这种情况下它将无法工作 . 顺便说一句:我注意到getframe
过去在OSX上有问题,例如:与停靠的数字 .(4)Matlab有时会出现OSX特有的问题,因为它们仍在调试一些非常基本的东西(OSX版本曾经是在X-Windows上运行的Linux版本,他们一直在努力改变这是最近几年) .
点(3和4)是因为我使用getframe来获取图像,这迫使窗口被带到frount,所以它可以做截图 . 我现在通过使用http://www.mathworks.com/help/techdoc/ref/avifile.addframe.html找到了一个解决方案,它远远优于getframe,因为它可以采用"figure or axis handle h" .
关闭它很重要,否则它不会保存图像 . 显然也没有遭受屏幕保护问题 .