yanice 发表于 2006-11-6 20:35

求大家看看我的是个什么错误。

一个函数文件 是sgma_x0.m文件 下边的
function xx=sgma_x0(w,x,y,v,alf)
a=alf^2+4*w^2;
b=4*sqrt(alf^2*w^2*v/(1-v));
r=sqrt(a^2+b^2);
B=0.5*sqrt((r-a)/2);
C=0.5*(alf-sqrt((r+a)/2));
xx=-(B^2+C^2)*exp(C*y)*(B*cos(B*y)+C*sin(B*y))*cos(w*x)/(B*w^2*pi);
然后我在命令窗口

quad(@(w)sgma_x0(w,1,1,0.3,20),1,20)
出现下边的错误
??? Error using ==> mpower
Matrix must be square.

Error in ==> sgma_x0 at 2
a=alf^2+4*w^2;

Error in ==> @(w)sgma_x0(w,1,1,0.3,20)


Error in ==> quad at 63
y = f(x, varargin{:});
高手帮我看看怎么解决啊
多谢了
最好可以发到我的邮箱yanice@163.com
非常感谢

[ 本帖最后由 eight 于 2007-1-24 18:34 编辑 ]

xjzuo 发表于 2006-11-6 22:56

回复

注意function中向量的点运算,以及quad的用法.

[ 本帖最后由 xjzuo 于 2006-11-6 23:00 编辑 ]

yanice 发表于 2006-11-6 23:06

回复 #3 xjzuo 的帖子

quad地用法我觉得没错,根据matlab的help里边的写的 如果把函数换一下 就可以
另外 您说的注意function向量的点运算是什么意思?
我是蔡鸟

多情清秋 发表于 2006-11-7 01:21

3楼的意思如下:

function xx=sgma_x0(w,x,y,v,alf)
a=alf.^2+4*w.^2;
b=4*sqrt(alf.^2.*w.^2.*v./(1-v));
r=sqrt(a.^2+b.^2);
B=0.5*sqrt((r-a)/2);
C=0.5*(alf-sqrt((r+a)/2));
xx=-(B.^2+C.^2).*exp(C.*y).*(B.*cos(B.*y)+C.*sin(B.*y)).*cos(w.*x)./(B.*w.^2.*pi);

yanice 发表于 2006-11-7 09:59

回复 #5 多情清秋 的帖子

大哥 我爱死你了 好了谢谢您 太爱你了
多谢了 多谢啊

yanice 发表于 2006-11-7 10:08

回复 #5 多情清秋 的帖子

现在我想计算quad(@(w)sgma_x0(w,X,Y,v,alf),1,7)
其中x=1:10;
y=1:10;
=meshgrid(x,y);
这样ans是不是给我一个10x10的矩阵啊?
多谢
页: [1]
查看完整版本: 求大家看看我的是个什么错误。