使用下拉菜单在MATLAB中制作GUI

4次浏览(最近30天)
这是我的MATLAB代码:
x = [80:5:0 5:60]
持有
%橡胶1
f1=[5E-08 -8E-05 -0.0041 1.7746 120380]
f2=[-3E-07 -0.0001 0.0044 1.7961 69.802]
f3=[-1E-06 -9E-05 0.01400 1.5669 31.916]
日元= polyval (f1, x)
y2 = polyval (f2, x)
y3 = polyval (f3, x)
情节(x, y₁,“-.g”
情节(x, y2,‘g’
情节(x, y3,“——g”
z = 60
lv1 =找到(y1 < z = 1“最后一次”);
isx1 = interp1 (y1 (lv1 + [1]), x (lv1 + [1]), z)
情节(isx1, z,“罗”
lv2 =找到(y2 < z = 1“最后一次”);
isx2 = interp1 (y2 (lv2 + [1]) x (lv2 + [1]), z)
情节(isx2, z,“罗”
lv3 =找到(y3 < z = 1“最后一次”);
isx3 = interp1 (y3 (lv3 + [1]) x (lv3 + [1]), z)
情节(isx3, z,“罗”
持有
网格
传奇(“位置”“西北”
传说“上”“中值”“低”
这是我的GUI:
%--------------------------------------------------------
% GUI
%--------------------------------------------------------
%包含uicontrol的主要图形
my_figure =图(“位置”[500200500250]);
下拉列表的用户输入
c = uicontrol (“父”my_figure,“标签”“力”“风格”“popupmenu”);
c.Position =(20100100、80);
c.String = {“橡胶1”“橡胶3”“橡胶3”};
“%%编辑”框显示“输入”
uicontrol (“父”my_figure,“标签”“力”“风格”“编辑”...
“位置”(125160年,50岁,20)
%编辑框显示结果(下)
uicontrol (“父”my_figure,“标签”“结果”“风格”“编辑”...
“位置”(125100年,50岁,20)
%编辑框显示结果(中位数)
uicontrol (“父”my_figure,“标签”“结果”“风格”“编辑”...
“位置”(200100年,50岁,20)
%编辑框显示结果(上)
uicontrol (“父”my_figure,“标签”“结果”“风格”“编辑”...
“位置”(275100年,50岁,20)
%执行脚本stress sinbeams_8的按钮
uicontrol (“父”my_figure,“标签”“运行”“风格”“按钮”...
“位置”(20100、50、20),“字符串”“运行”...
“回调”“Rubber_Types”
%--------------------------------------------------------
我想做的是能够:
  1. 在弹出菜单中选择橡胶类型
  2. 在第一个单控件中改变冲击力
  3. 然后按运行
  4. 显示最后三个uncontrol中的三个结果
有人能帮我吗?
2的评论
肯尼斯·Bisgaard Cristensen
我真的不知道,这是我第一次尝试GUI。但是我需要它来显示当我改变冲击力和压机运行时的三个曲线中的冲击温度。
但说实话,我不完全确定我在做什么,所以希望能有一些建议,以正确的方式做这件事

登录评论。

答案(1)

沃尔特·罗伯森
一般来说,当你创建GUI时,你有多个阶段:
  1. 创建GUI元素并设置所有必需的Callback属性的代码。
  2. 等待事情发生的代码。这通常是相当简单的代码,如果您不介意用户有权访问命令行,那么只需返回到命令行即可。对于您正在创建的这种GUI, MATLAB将负责在定义的事件发生时调用回调函数,前提是具有控制的代码允许检查事件
  3. 验证输入组合的回调代码,可能会允许更多的输入(例如,允许用户在第一个输入之前输入第二个输入可能没有意义)。最终,通过一些动作的组合,用户表明他们已经准备好进行计算了
  4. 执行计算的代码(从回调调用)
  5. 提取结果并格式化结果并更新显示的代码(从回调调用)。
通常,执行计算的代码和更新显示的代码都被组合到一个输入控制事件的回调中。在简单的情况下,您可能只依赖于特定输入被更改以调用计算这一事实,但在更复杂的情况下,通常会有某种按钮指示用户希望继续进行计算。
进行计算的回调是验证所有输入的例程,而对单个输入没有回调,这种情况也并不少见。
如果您查看您创建的代码,您已经创建了gui元素,但是您还没有设置任何回调,也没有设置任何输入验证,也没有设置任何让用户指示他们想要继续的方式。您还没有将计算放入可以从回调调用的表单中,也没有放入提取结果并将其发送到显示的任何代码。
因为您目前还没有记录输出字段的句柄,也没有通过使用不同的标记字段或不同的UserData来区分它们,因此代码将在确定要向哪个输出字段发送什么内容时遇到麻烦。

标签

下载188bet金宝搏


释放

R2020a

社区寻宝

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

开始狩猎!