作业帮 > 综合 > 作业

matlab中为什么这条语句: y=1./(1+25*x.^2) 中必须要加点(即英文状态下的句号)?

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/08/15 13:43:19
matlab中为什么这条语句: y=1./(1+25*x.^2) 中必须要加点(即英文状态下的句号)?
matlab中用三次多项式拟合这个方程:y=1/(1+25*x^2),代码如下:x=-1:0.01:1
        y=1./(1+25*x.^2)
        p1=polyfit(x,y,3)
       y1=polyval(p1,x)
        plot(x,y,x,y1)
为什么这条语句: y=1./(1+25*x.^2) 中必须要加点(即英文状态下的句号)?

matlab中为什么这条语句: y=1./(1+25*x.^2) 中必须要加点(即英文状态下的句号)?
首先x是一个数组,x=[-1 -0.99 -0.98 .1]由语句x=-1:0.01:1产生.对数组做除法或者平方是没有意义的,因为Matlab支持矩阵运算,所以不是默认对数组做平方运算是对所有元素作平方运算.若想对数组每一个元素作平方运算,那么应该用x.^2,运算符,同时./(两个字符是一个运算符)指的是对数组每一个元素进行运算,同时将每一次运算结果返回.当然不是覆盖而是也存进一个数组.其实y=1./(1+25*x.^2) 这句话也可以用循环做.类似于for i=1:size(x) y(i)=1/(1+25*x(i)^2);
end
总而言之要想对一个数组所有元素进行运算需要用./和.*之类的运算符,而不是/或者*,因为这意思矩阵运算符,会产生歧义.