在MATLAB中, 我有以下数据:
mass = [ 23 45 44]
velocity = [34 53 32]
time = [1 2 3]
acceleration = [32 22 12]
speed = [12 33 44]
我想要实现的是应用uicontrol,使用此数据(质量,速度,时间,加速度,速度)创建两个列表,并且能够单击每列中的一个变量(质量)并且有一个数值数据输出,如质量= 23 45 44
输出:存储在这些变量中的数值数据
以下是代码:
function learnlists()
figure;
yourcell={'mass','velocity','time','acceleration','speed'}
hb = uicontrol('Style', 'listbox','Position',[100 100 200 200],...
'string',yourcell,'Callback',@measurements)
yourcell={'mass','velocity','time','acceleration','speed'}
hc = uicontrol('Style', 'listbox','Position',[300 100 200 200],...
'string',yourcell,'Callback',@measurements)
function [out] = measurements(hb,evnt)
outvalue = get(hb,'value');
v = get(hb,'value')
if v == 1
mass = [1 2 3 4 5]
elseif v == 2
velocity = [ 1 2 3 4 5]
end
end
end
谢谢,
阿曼达
答案 0 :(得分:1)
我建议你不要使用函数来保持简单,并将所有变量保存在基础工作区中。
以下是一个列表框的示例:
mass = [ 23 45 44];
velocity = [34 53 32];
time = [1 2 3];
acceleration = [32 22 12];
speed = [12 33 44];
figure;
yourcell = {'mass','velocity','time','acceleration','speed'};
hb = uicontrol('Style', 'listbox','Position',[100 100 200 200],...
'string',yourcell,'Callback',...
['switch get(hb, ''Value''), ',...
'case 1, mass, ',...
'case 2, velocity, ',...
'case 3, time, ',...
'case 4, acceleration, ',...
'case 5, speed, ',...
'end']);
但是,这会显示在命令窗口中,您可以更改代码以在gui的文本框中显示它。
您还可以将脚本作为回调函数执行。
hb = uicontrol('Style', 'listbox','Position',[100 100 200 200],...
'string',yourcell,'Callback', 'myScript');
然后在您的目录中创建一个m脚本: (myScript.m)
switch get(hb, 'Value')
case 1
mass
case 2
velocity
case 3
time
case 4
acceleration
case 5
speed
end
请注意,所有内容仍在您的基本工作区中。
希望它有所帮助。