matlab中*与.*有何区别?

内联函数的定义中,比如f=inline('x*sin(x)')与f=inline('x.*sin(x)')两者的乘法*,一个有点一个没有点,在调用时有时会报告第一种定义下... 内联函数的定义中,比如
f=inline('x*sin(x)')与f=inline('x.*sin(x)')
两者的乘法*,一个有点一个没有点,在调用时有时会报告第一种定义下错误,请问它们有何区别?
感谢前面两位的回答,对于矩阵的点乘运算我是知道的。
这里的函数应该是符号函数,没有用到矩阵的乘法吧,应该是两码事吧?
希望最好有权威的说法,不要自己猜测
我把一个应用放在这里,你们来分析一下:
如上:f=inline('x*sin(x)');quad(f,0,pi/4)
运行出现错误
如果改为 f=inline('x.*sin(x)');quad(f,0,pi/4),得到
ans =

0.1517
展开
 我来答
扰龙文利6K
推荐于2016-03-31 · TA获得超过1172个赞
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
首先第一点,你必须铭记在心,就是matlab是在用矩阵的形式储存变量,运算变量,这就是matlab的特点,也是它强大之处
正因为matlab在设计的时候就是为矩阵计算设计的,因而在matlab中 * (乘)就是用矩阵的乘法去求答案,所以要求乘号两边的变量要满足矩阵运算要求,比如c=a*b,a如果是3行2列,那b就必须是2行n列,得出的c就是个3行n列的矩阵。这也就是为你说说“在调用时有时会报告第一种定义下错误”。你的x和sin(x)满足矩阵乘法规则吗?(就是说x的列数等于sin(x)的行数)
但有时我们要求a乘b矩阵是:a矩阵的每一个元素去乘以b矩阵的对应元素,得出的数做c的对应位置的元素。比如a=[1 2 3] b=[2 3 4] 则c=a.*b
c=[1*2 2*3 3*4]=[1 6 12] .*(点乘)要求a与b是同种形式的矩阵,即行数和列数都相等!
更详细的你自己慢慢试着体会吧,多用就明白了!
第二个是对的,x和sin(x)同为一行n列,楼上的口误了
你的那两个程序段,我分别命名为ab和abc
以下是运行结果:
>> x

x =

1 2 3 4 5 6 7 8

>> ab(x)

f =

Inline function:
f(x) = x.*sin(x)

>> abc(x)

f =

Inline function:
f(x) = x*sin(x)
没有问题,我是matlab7.1,要不你把你与此程序相连的程序段写出来看下
渡变释n
2009-08-29 · TA获得超过782个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:279万
展开全部
http://zhidao.baidu.com/question/58734583.html
这个是讲quad的,quad涉及了向量问题啊,向量问题就涉及到点乘问题啊,你仔细看看吧。
给你一个权威的例子:
8.6.3.3 内联函数创建和应用示例
【*例8.6.3.3-1】演示:内联函数的第一种创建格式;使内联函数适于“数组运算”。
clear,F1=inline('sin(rho)/rho') %第一种格式创建内联函数
F1 =
Inline function:
F1(rho) = sin(rho)/rho

f1=F1(2) %内联函数的一种使用方法
f1 =
0.4546

FF1=vectorize(F1) %产生适于“数组运算”的内联函数
xx=[0.5,1,1.5,2];ff1=FF1(xx)
FF1 =
Inline function:
FF1(rho) = sin(rho)./rho
ff1 =
0.9589 0.8415 0.6650 0.4546

【*例8.6.3.3-2】演示:第一种内联函数创建格式的缺陷;含向量的多宗量输入的赋值。
G1=inline('a*exp(x(1))*cos(x(2))'),G1(2,[-1,pi/3])
G1 =
Inline function:
G1(a) = a*exp(x(1))*cos(x(2))
??? Error using ==> inline/subsref
Too many inputs to inline function.

G2=inline('a*exp(x(1))*cos(x(2))','a','x'),G2(2,[-1,pi/3])
G2 =
Inline function:
G2(a,x) = a*exp(x(1))*cos(x(2))
ans =
0.3679

【*例8.6.3.3-3】演示:产生向量输入、向量输出的内联函数;这种向量函数的调用方法。
Y2=inline('[x(1)^2;3*x(1)*sin(x(2))]')
argnames(Y2) %观察内联函数的输入宗量
Y2 =
Inline function:
Y2(x) = [x(1)^2;3*x(1)*sin(x(2))]
ans =
'x'

x=[4,pi/6]; %向量输入的赋值
y2=Y2(x) %获得向量输出
y2 =
16.0000
6.0000

【*例8.6.3.3-4】演示:最简练格式创建内联函数;内联函数可被feval 指令调用。
Z2=inline('P1*x*sin(x^2+P2)',2) %必须是大写字母P
Z2 =
Inline function:
Z2(x,P1,P2) = P1*x*sin(x^2+P2)

z2=Z2(2,2,3) %直接计算内联函数
fz2=feval(Z2,2,2,3) %注意:这里,应写Z2,不能写成 'Z2' 。
z2 =
2.6279
fz2 =
2.6279

http://www.hdubbs.com/viewthread.php?tid=11841这个网站回答了匿名函数和关联函数的某些区别。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式