필터 지우기
필터 지우기

gui popupmenu problem with limits

조회 수: 2 (최근 30일)
Alicja
Alicja 2023년 1월 17일
답변: Raghav 2023년 4월 5일
Hello, I want to create an app that counts the limit of a function at an exact point. I need to use a popup menu to select whether the border is to the right or left. There's my code, why isn't it working? Could you help me?
function mat
f = figure('Visible','off',...
'Position',[480,500,500,480]);
pushbutton = uicontrol('Style','pushbutton',...
'String','count',...
'Position',[285,63,70,25],...
'Callback',@border);
hinput_g = uicontrol('Style','edit',...
'Position',[120, 200,240,35],...
'String','function','FontSize',13, 'FontName','silom');
hinput_granica = uicontrol('Style','edit',...
'Position',[120, 100,240,35],...
'String','limit at point','FontSize',13);
hpopup_g = uicontrol('Style','popup',...
'String',{'right','left'},...
'Position',[130,50,140,35]);
set(f,'Name','My app gui');
set(f,'Visible','on');
function border(~,~)
x = get(hinput_g,'String');
x = str2sym(x);
a = get(hinput_granica, 'String')
a = str2num(a);
idx = get(hpopup_g,'Value');
str = get(hpopup_g, 'String');
popup_str = str{idx};
if popup_str == 'right'
c = limit(x, a,'right');
msgbox(sprintf(char(c)));
elseif popup_str == 'left'
c = limit(x, a,'left');
msgbox(sprintf(char(c)));
end
end
end
  댓글 수: 5
Alicja
Alicja 2023년 1월 17일
nothing has changed :/
Torsten
Torsten 2023년 1월 17일
편집: Torsten 2023년 1월 17일
You are missing an argument in the call to limit (see above).
And make sure that the first two arguments are of symbolic type (what you can check by the call to "class").

댓글을 달려면 로그인하십시오.

답변 (1개)

Raghav
Raghav 2023년 4월 5일
Hi,
Based on your question, I understand that you are facing difficulty using limit function.
The error message suggests that the variable a is not a symbolic variable.
In the border function, you are converting the string input from the hinput_granica edit box to a numeric value using the str2num function. However, limit function from the Symbolic Math Toolbox expects a symbolic variable as the second input, not a numeric value.
To fix the issue, you should create a symbolic variable using the sym function and use it as the second input to the limit function.
The official documentation for limit & sym function is mentioned below respectively:
Hope it helps!
Thanks,
Raghav Bansal

카테고리

Help CenterFile Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by