i am trying to make a calculator in matlab gui and i add + or - and i want to add int and diff so i write the 5 lines of codes

1 次查看(过去 30 天)
syms x;
input=get(handles.edit3,'string');
input = strcat('@(x) ',input);
fx=str2func(input);
c=int(fx,x);
set(handles.text2,'string',char(c));
i write the 5 lines but not this one input = strcat('@(x) ',input); when i added this one my int and diff start working inside the gui what i am not geting is what is this starcat do for the int and diff and what is the @'x' mean

采纳的回答

Mehmed Saad
Mehmed Saad 2020-5-7
编辑:Mehmed Saad 2020-5-7
suppose i want to create an anonymous function which subtract two inputs
An_fn = @(x,y) x-y;
It is equivilant to
function op = Not_An_fn(x,y)
op = x-y;
end
An_fn(1,2)
and
Not_An_fn(1,2)
will give you same output
str2func converts the string into anonymous function
suppose my string is 'x-y'
so i need to define the input arguments by @(x,y)
strcat is concatenating the input argument with the string 'x-y'
user_string = 'x-y';
strcat('@(x,y)',user_string)
ans =
'@(x,y) x-y'
Now if we apply str2func to convert it to anonymous function
fh = str2func(strcat('@(x,y)','x-y'))
fh =
function_handle with value:
@(x,y)x-y

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Numeric Types 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by