我正在尝试在Matlab GUI中制作一个计算器,我加入+或 - 我想加入int和diff,所以我写了5行代码

4次观看(过去30天)
Syms x;
输入= get(handles.edit3,'string');
输入= strcat('@(x)',输入);
fx = str2func(输入);
c = int(fx,x);
set(handles.text2,'string',char(c));
我写了5行,但不是这个输入= strcat('@(x)',输入);当我添加这个时,我的int和diff开始在gui内工作,我没有得出的是这个starcat为int和diff做了什么,@'x'是什么意思

接受答案

Mehmed Saad.
Mehmed Saad. 20月7日
编辑:Mehmed Saad. 20月7日
假设我想创建一个减去两个输入的匿名函数
an_fn = @(x,y)x-y;
它等于
功能op = not_an_fn(x,y)
op = x-y;
结尾
AN_FN(1,2)
not_an_fn(1,2)
会给你同样的产出
str2func将字符串转换为匿名函数
假设我的字符串是'x-y'
所以我需要通过@(x,y)来定义输入参数
Strcat与字符串'x-y'连接的输入参数串联
user_string =.'x-y';
Strcat('@(x,y)',user_string)
ans =.
'@(x,y)x-y'
现在,如果我们应用str2func以将其转换为匿名函数
fh = str2func(strcat('@(x,y)''x-y')))
fh =
function_handle.有价值:
@(x,y)x-y

更多答案(0)

标签

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!