rfj123 发表于 2007-1-20 15:45

新手求教: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);

这是怎么回事啊.......

xjzuo 发表于 2007-1-20 17:14

回复

试试如下形式:
%%%%%%%%%%%%
ff=inline('x^2+a','x','a')
%%%%%%%%%%%%

rfj123 发表于 2007-1-20 17:56

不太行啊,"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'.

xjzuo 发表于 2007-1-20 18:38

回复

你想做什么? 请先把问题讲清楚一些.

rfj123 发表于 2007-1-20 19:46

初始目的是解决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)]

xjzuo 发表于 2007-1-20 19:53

回复

那直接用一个循环就行了.
另:如果用inline定义函数,可用 feval计算函数值.

rfj123 发表于 2007-1-21 00:18

原帖由 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的,该怎么办?

xjzuo 发表于 2007-1-21 09:16

回复

你没有设置成string类型,当然不认a;
建议将你的原问题传上来,否则浪费很多时间(拐弯抹角).

rfj123 发表于 2007-1-21 09:54

果然这样,solve(x^2+a)不加引号
就解决了,真是谢谢啦

    于是献上珍藏的一条搞笑手机短信
            人间四悲:金榜题名时,他人
                            洞房花烛夜,不举
                            久旱逢甘霖,一滴
                            他乡遇故知,借钱
            人间四霉:尿尿茨一鞋
                            喝汤洒一怀
                            擦腚抠破纸
                            放屁嘣出屎
页: [1]
查看完整版本: 新手求教:inline函数的用法