我想创建一个函数(symfun),我想把它分成几个案例,即如果t&gt;然后答案将是a,如果t <0,答案将是b。 问题是,matlab不允许我在sym函数之后放置if语句。
>> l = symfun(0, [m]);
>> l(m) = if m>0 3
我也尝试创建一个函数:
function [x1] = xt_otot_q3(t)
并尝试连接两个函数:
>> l(m) = xt_otot_q3(m)
Conversion to logical from sym is not possible.
有没有办法将symfun分解为案例?
答案 0 :(得分:0)
不确定我理解你想要什么。 此代码“组合”下面定义的函数symfun和xt + otot_q3:
function test;
m=randn(4); % N(0,1) random numbers
l=xtotot_q3(symfun(0,m)) % combine xt_otot_q3 and symfun
l=symfun(0,xtotot_q3(m)) % combine symfun and xt_otot_q3
return
function lval=symfun(thr,rval);
lval=ones(size(rval)); % output, size of input, = 1
lval(rval<thr)=-1; % output = -1 if input < thr
return
function lval=xtotot_q3(rval);
lval=3*rval+1; % some function, in this case 3 * input + 1
return
您可以将整个位保存为test.m,然后从matlab提示符中调用test
。也许如果你从这开始,那么你可以修改它以满足你的需要。