astonish00 发表于 2006-6-15 19:33

[求助]matlab编程时遇到的问题

[求助]matlab编程时遇到的问题

matlab中,
>> syms x y
>> z=x+y;
>> f=inline(z)
f =
Inline function:
f(x,y) = x+y
>> f(1,1,1)
??? Error using ==> inline/subsref
Too many inputs to inline function.
原因是因为输入了三个“1”,也即 f=x+y 中缺少与第三个“1”对应的变量。
现要求输入3个“1”也能的出正确结果(此问题对应正确结果是'2 ')<请问该如何处理!!!

[ 本帖最后由 lxq 于 2007-5-2 23:48 编辑 ]

xuebx 发表于 2006-6-15 19:38

你的前半部分分析是有道理的,但后半部分可能在matlab中比较难实现<BR>

astonish00 发表于 2006-6-15 20:03

回复:(xuebx)你的前半部分分析是有道理的,但后半部...

我想到一个方法,但因为对matlab不熟,不知道该如何做。方法思路如下:<BR>输入数据(x1=1,x2=1,x3=1)前,先判断函数(以上面的 f=x1+x2 为例) 中是否含有变量(如x3)<BR>如果有则不会出现问题<BR>如果没有则只将 x1=1, x2=1,带入计算即可<BR>我要问的是,有没有单独的命令来查找出函数中的参数

zhangenter 发表于 2006-6-15 20:08

function f=Inline(x,y,c)<BR> f(x,y) = x+y

zhangenter 发表于 2006-6-15 20:18

nargin: 函数的输入参数个数:<BR>function f=Inline(x,y)<BR>if nargin==2&amp;nargin==3<BR>    f(x,y) = x+y<BR>end

astonish00 发表于 2006-6-15 21:02

回复:(zhangenter)nargin: 函数的输入参数个数:fu...

真是太谢谢了,用你的提示,我的问题解决了:)
页: [1]
查看完整版本: [求助]matlab编程时遇到的问题