我制作了一个matlab gui,它有两个uitable,第一个表的单元格中有选择列表,第二个表的单元格中有数字格式。从另一个GUI获得输出(通过按“计算”按钮)。当我们在第一个表的每个选择列表(每个列)上选择选项并按“应用”按钮时,输出将在第二个表上设置,但是当选择了下一个选择列表(下一个列)的选项并按“应用”按钮时,上一个输出被删除。换句话说,如果我在第一选择列表(单元格[1,1])上选择“垂直”并按“应用”,则在“垂直”列上设置了例如“ 100”的数字,但是当我在“垂直”列上选择了“水平”时在下一个选择列表中,在“横向”列上设置的数字(例如“ 200”)和数字“ 100”将转换为零。我需要以前的输出(例如“ 100”)保留在第二个表中,并且不转换为零。`%---在“应用”中按下按钮时执行。
Fz1max = evalin('base','Fz1max'); Fy1max = evalin('base','Fy1max'); VerDisp = evalin('base','VerDisp'); BrakingFor = evalin('base','BrakingFor');
sourcedata = get(handles.uitable1, 'data'); newdata = get(handles.uitable2, 'data'); options = {'Vertical', 'Lateral', 'Twist','Braking'}; for i = 1:5 switch sourcedata{i,1} case options{1} newdata(i,:) = { Fz1max,0,0,0,0 }; case options{2} newdata(i,:) = { 0,Fy1max,0,0,0 }; case options{3} newdata(i,:) = { 0,0,VerDisp,0,0 }; case options{4} newdata(i,:) = { 0,0,0,BrakingFor,0 }; end switch sourcedata{i,2} case options{1} newdata(i,:) = { Fz1max,0,0,0,0 }; case options{2} newdata(i,:) = { 0,Fy1max,0,0,0 }; case options{3} newdata(i,:) = { 0,0,VerDisp,0,0 }; case options{4} newdata(i,:) = { 0,0,0,BrakingFor,0 }; end switch sourcedata{i,3} case options{1} newdata(i,:) = { Fz1max,0,0,0,0 }; case options{2} newdata(i,:) = { 0,Fy1max,0,0,0 }; case options{3} newdata(i,:) = { 0,0,VerDisp,0,0 }; case options{4} newdata(i,:) = { 0,0,0,BrakingFor,0 }; end end set(handles.uitable2, 'data',newdata);