va=get(handles.edit1,'String');
vr=get(handles.edit2,'String');
vs=get(handles.edit3,'String');
if va<=235.6&&vr>0.7727*va-171.75&&vr<-0.5241*va+133.79
set(handles.text5,'String','干层')
elseif vr<=10.3&&va>(vr+171.75)/0.7727&&va<(21.123-vr)/0.0459
set(handles.text5,'String','水层')
elseif vr>10.3&&va>(133.79-vr)/0.5241&&vr>0.7473*vs+2.8897
set(handles.text5,'String','油层')
elseif va>235.6&&vr<10.3&&vr>-0.0459*va+21.123&&vr>0.7473*vs+2.8897
set(handles.text5,'String','油层')
elseif vr>10.3&&va>(133.79-vr)/0.5241&&vr<0.7473*vs+2.8897
set(handles.text5,'String','水淹层')
elseif vr<10.3&&va>235.6&&vr>-0.0459*va+21.123&&vr<0.7473*vs+2.8897
set(handles.text5,'String','水淹层')
end
guidata(hObject, handles);
我写这段根据三个值判断结果的程序有什么不对的地方吗
试运行后界面提示如下:
Attempt to reference field of non-structure array.
Error in ==> untitled1>pushbutton1_Callback at 171
va=get(handles.edit1,'String');
Error in ==> gui_mainfcn at 75
feval(varargin{:});
Error in ==> untitled1 at 44
gui_mainfcn(gui_State, varargin{:});
??? Error while evaluating uicontrol Callback.
MATLAB中GUI的编程问题
答案:2 悬赏:10 手机版
解决时间 2021-04-14 18:50
- 提问者网友:骑士
- 2021-04-14 07:46
最佳答案
- 五星知识达人网友:孤独入客枕
- 2021-04-14 08:43
1、你好,问题就在以下这三行代码:
va=get(handles.edit1,'String');
vr=get(handles.edit2,'String');
vs=get(handles.edit3,'String');
2、注意到,get(handles.edit1,'String');,这就说明你的va、v、vs都是字符串类型的变量,而在后面你拿他与浮点数比较大小了(如,va<=235.6),类型不匹配,这是必须要报错的。
3、修改方法:
va=get(handles.edit1,'String');
vr=get(handles.edit2,'String');
vs=get(handles.edit3,'String');
va=str2num(va);%%将字符串类型数据转化为数字型
vr=str2num(vr);
vs=str2num(vs);
va=get(handles.edit1,'String');
vr=get(handles.edit2,'String');
vs=get(handles.edit3,'String');
2、注意到,get(handles.edit1,'String');,这就说明你的va、v、vs都是字符串类型的变量,而在后面你拿他与浮点数比较大小了(如,va<=235.6),类型不匹配,这是必须要报错的。
3、修改方法:
va=get(handles.edit1,'String');
vr=get(handles.edit2,'String');
vs=get(handles.edit3,'String');
va=str2num(va);%%将字符串类型数据转化为数字型
vr=str2num(vr);
vs=str2num(vs);
全部回答
- 1楼网友:行路难
- 2021-04-14 09:38
书上写的没有错,的确是双引号,
因为'set(gcf,''color'',''blu'')',单引号内添加引号时,肯定是双引号。
但是你的双引号不是英文输入状态下的双引号(英文输入状态下的引号,括号,逗号与汉文下的是不能通用的)
奇怪,就是下面这段程序,我得到结果了啊
figure
h_menu=uimenu(gcf,'label','color');
h_submenu1=uimenu(h_menu,'label','blue',...
'callback','set(gcf,''color'',''blue'')');
h_submenu2=uimenu(h_menu,'label','red',...
'callback','set(gcf,''color'',''red'')');
执行后没什么不妥啊!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯