安装R2018b后,我打开的第一个数字包含一条有趣的消息(以蓝色显示):
它之所以有趣,是因为它包含文本换行,透明度等功能,即使文本调整大小,图像也保持恒定宽度(这让我想起了CSS3 flexbox,因此标签)等等.
动画的最后一部分是慢动作,以更好地显示div的大小如何跟随图形的大小.
如果重要,我正在使用Win 10 v1803.
我想知道我们如何可以得出类似的,定制的,申报单(对于缺乏一个更好的词)在我们的数字.(重要的是要强调这不是一个UIFigure!)
到目前为止我发现了什么:
" 了解更多"链接打开页面:
web(fullfile(docroot, 'matlab/creating_plots/interactively-explore-plotted-data.html'))
Run Code Online (Sandbox Code Playgroud)
然而,任何一个web或docroot(或偶数doc)的入口点的断点都没有被击中.
假设这个元素是Child图中的一个,我试图找到它的句柄:
>> set(gcf,'MenuBar','none'); findall(gcf)
ans =
22×1 graphics array:
Figure (1)
ContextMenu
AnnotationPane
Axes
AxesToolbar
Text
Text
Text
ToolbarStateButton (Brush/Select Data)
ToolbarStateButton (Data Tips)
ToolbarStateButton (Rotate 3-D)
ToolbarStateButton (Pan)
ToolbarStateButton (Zoom In)
ToolbarStateButton (Zoom Out)
ToolbarPushButton (Restore View)
Button
Button
Button
Button
Button
Button
Button
Run Code Online (Sandbox Code Playgroud)
然而,使这些控件不可见使用set(h(2:end), 'Visible', …
matlab undocumented-behavior flexbox matlab-figure matlab-gui
在MATLAB中,有一个提示用户选择一个或多个文件uigetfile的功能- 还有另一个允许用户选择文件夹的功能 - uigetdir.
我想向用户提供选择的能力或者一个文件或文件夹,使用单一窗口,因为这是对UX我试图创造重要.
到目前为止,我发现使用上述功能1的唯一解决方案需要额外的步骤,要求用户提前选择他们想要选择的实体类型,并相应地调用相应的功能 - 我觉得不方便.
那我怎么能有一个允许我选择其中一个的对话框呢?
matlab user-interface user-experience filechooser matlab-gui
我从公司网站到另一个网站移动很多.在任何一天,我可能只有我的笔记本电脑或多达四台显示器.有了多个显示器,我不知道我将选择使用哪个显示器用于MATLAB主GUI(双击matlab.exe时启动的主GUI).这取决于可用监视器的分辨率.
我使用的脚本利用程序生成的GUI(而不是GUIDE),似乎MATLAB总是在第一台显示器上弹出它们.我研究了一点,发现通过使用定位图形用户界面来选择的显示器p = get(gcf, 'Position'),set(0, 'DefaultFigurePosition', p)和movegui命令,但这次如果我事先知道我要使用的显示器才有效.
有没有办法找出主要的MATLAB GUI在哪台显示器上运行,并在同一台显示器上弹出其他小的GUI?
我试图用一个完整的十字准线替换图表图上的指针(也就是说,一组2条垂直线,它们垂直和水平地延伸到图的边缘并跟随鼠标光标).多年前,我用这行代码完成了这个任务:
set(gcf,'Pointer','fullcross')
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试现在运行此行时,我收到以下消息:
Warning: Full crosshair pointer is no longer supported. A crosshair pointer will be used instead.
Run Code Online (Sandbox Code Playgroud)
我真的想找到一种实现此功能的替代方法,但迄今为止无法实现.我遇到了以下功能:MYGINPUT,但它似乎没有完成我正在寻找的东西.有没有人有什么建议?
我尝试以编程方式创建一个MATLAB GUI,并面对我的滑块在使用后消失的问题.我隔离了问题以保持代码简短.在这个GUI中,我想在plotmatrix每次使用滑块时刷新(忽略滑块的值与我的程序完全无关的事实,如前所述,我真的想保持代码清洁,这就是为什么我也删除了这个功能) .这是代码(您必须将其作为函数运行):
function StackOverflowQuestion_GUI()
% clear memory
close all; clc;
% initialize figure
f = figure;
% create main axes
AX_main = axes('Parent',f,...
'Units','normalized','Position',[.1 .2 .8 .7]);
% create slider
uicontrol('Parent',f,...
'Style','slider','Callback',{@sliderCallback,AX_main},...
'Units','normalized','Position',[0.05 0.05 0.9 0.05]);
plotmatrix(AX_main,randn(500,3));
title('Random Plotmatrix');
end
function sliderCallback(~,~,AX_main) % callback for slider
plotmatrix(AX_main,randn(500,3));
title('Random Plotmatrix NEW');
end
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!我想我误解了AXES的概念.当我绘制到我创建的AXES手柄时,为什么该图的其他部分也会受到影响?如果有人能向我解释这个图形处理系统基本上是如何工作的,那也是非常好的!
我正在编写一个图形窗口的代码,其中包含几个运行回调函数的GUI项.目前我有一个文本框和一个滑块控件,我进行了设置,以便更改文本框值不仅会更改显示的数据,还会更新滑块位置以匹配该值.我varargin遇到的问题是试图保持我的参数(在创建图形窗口时输入到main函数)被包含在父cell变量中.当我的顶层varargin包含一个值参数对,varargin是一cell维的1x2的.没关系.通常,可以将所有这些参数传递给内部函数调用,如下所示:
function topfunc(varargin)
%code
do_something(varargin{:})
Run Code Online (Sandbox Code Playgroud)
该函数dosomething可以看到正确的参数列表.但是,当我通过callback定义传递varargins时,就像在
txtui = uicontrol(hf,'Style','edit','string',fristframe,'backgroundcolor','y',...
'position',[10 100 50 20],'Tag','Scaler','UserData',lsatframe,...
'Callback',{@doslide,adcname,mode,goodframes,{varargin{:}} } );
Run Code Online (Sandbox Code Playgroud)
然后该函数 doslide调用绘图更新功能dordplot
function doslide(theui,event,fileName,mode, goodframes,varargin)
% code snipped...
dordplot(slidinfo,event,fileName,mode,goodframes,varargin{:});
end
Run Code Online (Sandbox Code Playgroud)
里面doslide,varargin是含有期望的1×2单元1x1的细胞.
我在我的最终函数中添加了一个kludge修复程序,其中varargin实际使用的内容与行
varargin = varargin{:};
Run Code Online (Sandbox Code Playgroud)
但是,varargin首先将它包裹在一个细胞内似乎是错误的.
有没有修复,或者我是否错误地定义了我的回调函数调用?
matlab ×6
matlab-gui ×6
callback ×1
cell-array ×1
cursor ×1
filechooser ×1
flexbox ×1
position ×1
slider ×1