程序已经改好:
#include<stdio.h>#include<math.h>
double f(double x)
{return sqrt(4-x*x)}
double ladderShape(double a,double b)
{double s1,s2,n,i,h,s,m=1e-10 //有改动
s2=0n=100
do{
s1=s2n=2*nh=(b-a)/ni=1s2=0 //有改动
do{
s=(f(a+i*h)+f(a+(i-1)*h))*h/2
s2=s2+si=i+1}
while(i<=n)}
while((fabs(s1-s2))>(m*(fabs(s2)+fabs(s1))))
return s2}
main()
{ double a,b,s
printf("请输入a,b\n")
scanf("%lf%lf",&a,&b)
s=ladderShape(a,b)
printf("积分结果为%lf",s)
return 0
}
1、首先需要知道matlab中nan元素是非数字元素,一般是无效的数据,如下图所示。
2、然后输入a=[1 2 3 nan 4 5 nan 6],创建a矩阵,如下图所示。
3、然后在命令行窗口输入numel(find(isnan(a))),进行统计a矩阵nan元素的个数,如下图所示。
4、按回车键之后,可以看到a矩阵nan元素的个数为2,如下图所示。
5、最后也可以输入numel(a(isnan(a)))来统计a矩阵的nan元素个数,如下图所示。
百度:NaN,是Not a Number的缩写。一种计算机用语。NaN 用于处理计算中出现的错误情况,比如 0.0 除以 0.0 或者求负数的平方根。恩,这组数据的第三个三角形的三个点是(0,0)、(1,1)、(4,4)。成一条直线了,到
s = sqrt( p1 * ( p1 - length1 ) * ( p1 - length2 ) * ( p1 - length3 ))
这条语句的时候实际是求0的平方根所以显示nan咯。
你可以试试这些数据:(2,2)、(3,3)、(4,4)等等。。。
修改的话,你先想想吧,需要再追问~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)