einstein_son 发表于 2011-6-5 08:52:31

函数定义问题

alfa=;
y=inline('a*x(1)+b*x(2)+c*x(3)+d*x(4)','x')
a=cos(alfa(1))
b=cos(alfa(2))
c=cos(alfa(3))
d=cos(alfa(4))

求助,怎样能够把abcd代入y中,得到y。
谢谢!

gfl 发表于 2011-6-5 09:22:11

改成y=inline('a*x(1)+b*x(2)+c*x(3)+d*x(4)','x', 'a', 'b', 'c', 'd'),再调用y(x, a, b, d) 就可以了。

einstein_son 发表于 2011-6-5 09:26:43

2# gfl

alfa=;
a=cos(alfa(1))
b=cos(alfa(2))
c=cos(alfa(3))
d=cos(alfa(4))
y=inline('a*x(1)+b*x(2)+c*x(3)+d*x(4)','x', 'a', 'b', 'c', 'd'),
y(x,a,b,c,d)

不行啊,出错的,您再帮我看看。

谢谢!!

gfl 发表于 2011-6-5 19:08:59

x必须赋值!

rocwoods 发表于 2011-6-7 09:35:27

别再用inline这种老掉牙的又很低效的函数结构了,那都是7年以前MATLAB的用法了。用匿名函数吧。
>> alfa=;
a=cos(alfa(1));
b=cos(alfa(2));
c=cos(alfa(3));
>> y=@(x) a*x(1)+b*x(2)+c*x(3)+d*x(4);
>> x = 1:4;
>> y(x)
ans =
-8.8818e-016
页: [1]
查看完整版本: 函数定义问题