新手求教:inline函数的用法
使用inline时候有点不解。刚开始都好:
ff=inline('x^2','x')
ff =
Inline function:
ff(x) = x^2
>> ff(5)
ans =
25
但是如果加了一个“a”,我想让a是一个变量,或是参数。下面就有问题了。。。
ff=inline('x^2+a','x')
ff =
Inline function:
ff(x) = x^2+a
>> ff(5)
??? Error using ==> inlineeval
Error in inline expression ==> x^2+a
??? Undefined function or variable 'a'.
Error in ==> E:\Matlab\toolbox\matlab\funfun\@inline\subsref.m
On line 25==> INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);
这是怎么回事啊.......
回复
试试如下形式:%%%%%%%%%%%%
ff=inline('x^2+a','x','a')
%%%%%%%%%%%% 不太行啊,"a"老是有问题:
ff=inline('x^2+a','x','a')
ff =
Inline function:
ff(x,a) = x^2+a
>> ff(5)
??? Error using ==> inline/subsref
Not enough inputs to inline function.
>> ff(5,a)
??? Undefined function or variable 'a'.
回复
你想做什么? 请先把问题讲清楚一些. 初始目的是解决m=solve('x^2-1','x')m=solve('x^2-2,'x')
m=solve('x^2-3,'x')等等好几个方程,实际方程复杂些。
就想用个a代替, m=solve('x^2+a','x'),再想法把a赋值为-1,-2,-3...
因为具体方程复杂些,干脆就弄个ff=inline('x^2+a','x'),想用ff代替,省得写
这样就能写成 m=solve('ff(x)','x').
这都是理想
但是出错了,在使用 ff(x) 时候就出现上面的问题。
其实, 不用ff代替,m=solve('x^2+a','x')就没问题
m =
[(-a)^(1/2)]
[ -(-a)^(1/2)]
回复
那直接用一个循环就行了.另:如果用inline定义函数,可用 feval计算函数值. 原帖由 xjzuo 于 2007-1-20 19:53 发表
那直接用一个循环就行了.
另:如果用inline定义函数,可用 feval计算函数值.
哦,可又出一个问题,solve函数的:
>>a=-9
a =
-9
>> m=solve('x^2+a','x')
m =
[(-a)^(1/2)]
[ -(-a)^(1/2)] 这个a还是a,完全无视我在前面的说明:a=-9
a值老是代不进去,希望得到具体数值的解,不带a的,该怎么办?
回复
你没有设置成string类型,当然不认a;建议将你的原问题传上来,否则浪费很多时间(拐弯抹角). 果然这样,solve(x^2+a)不加引号
就解决了,真是谢谢啦
于是献上珍藏的一条搞笑手机短信
人间四悲:金榜题名时,他人
洞房花烛夜,不举
久旱逢甘霖,一滴
他乡遇故知,借钱
人间四霉:尿尿茨一鞋
喝汤洒一怀
擦腚抠破纸
放屁嘣出屎
页:
[1]