MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   大家帮我看一个程序呗,谢了 (https://www.labfans.com/bbs/showthread.php?t=4873)

xxuffei 2008-10-16 01:14

大家帮我看一个程序呗,谢了
 
各位方家好:
我写了一段程序,大家给看看有什么毛病
function y=ceshi(x)
if x>=0
y=1;
else y=0
end
然后把它保存为ceshi.m
接着用数值积分
quad('ceshi',0,1)
这时出现错误
??? Attempted to access y(7); index out of bounds because numel(y)=1.

Error in ==> quad at 71
if ~isfinite(y(7))
这是怎么回事呀?
谢谢!

zqh0260 2008-10-16 10:34

回复: 大家帮我看一个程序呗,谢了
 
quad采用逼近法来求函数积分,它要求ceshi函数值在数值逼近过程中为一个矩阵,但是原ceshi函数只能得到一个元素,而它用该方法无法求的结果。用int可得到正确积分。

xxuffei 2008-10-16 11:14

回复: 大家帮我看一个程序呗,谢了
 
谢谢zqh0260。
我用int做过,也不行。如果把quad改为int,会有如下出错信息
??? Function 'ge' is not defined for values of class 'sym'.

Error in ==> ceshi4 at 2
if x>=0。
另外,如果我把上面那段程序改为
function y=ceshi(x)
if x>=0
y=x;
else y=0
end
然后运行quad('ceshi',0,1)则完全没有问题。
很奇怪。

xiezhh 2008-10-16 22:23

回复: 大家帮我看一个程序呗,谢了
 
用不着那么麻烦

quad('x>=0',0,1)

ans =

1


所有时间均为北京时间。现在的时间是 03:39

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.