function f=yuandu_mzc(x)r=[2.8,0,-3.4,-4.7,-4.1,-6.0,-7.8,-8.4,-11.2,-11.9,-13.8,-14.4,-13.8,-16.4,-14.5,-14.8-16.0,-14.5,-14.8,-16.0,-14.5,-16.0,-16.0,-15.7,-14.8,-15.1,-12.5,-13.4,-9.4,-10.1,-8.8,-9.7,-8.7,-8.7,-6.7,-4.6,-3.8,-1.7,-0.7,2.1,2.0,5.1,5.7,7.0,7.9,9.6,11.9,10.1,14.2,15.0,16.9,16.9,17.0,18.6,19.8,20.9,19.6,20.9,20.3,17.8,21.0,18.9,18.7,14.1,17.9,14.9,15.6,14.5,11.0,13.5,7.0,10.0,6.9,4.0,4.1];theta=[2*pi/72:2*pi/72:2*pi]';x=[-8:1:12]';y=[-27:1:-7]';for i=1:21z(i)=max(r'-x(i)*cos(theta)-y(i)*sin(theta))-min(r'-x(i)*cos(theta)-y(i)*sin(theta));end[a1,b1]=meshgrid(-8:2:12,-27:2:-7);z1=griddata(x,y,z,a1,b1,'v4');subplot(1,2,1),surf(a1,b1,z1),axis([-8,12,-27,-7,5,35]);subplot(1,2,2),contour(a1,b1,z1,10)
2 回答
眼眸繁星
TA贡献1873条经验 获得超9个赞
可以直接用polyval([1 0 3 4],0),
由于你这个是多项式,很好处理的
如果是不能写成矩阵系数的非线性函数,相对就麻烦一点了
比如y=sin(x)+x^2,要求x=0处的值,可以这样求,
f=inline('sin(x)+x^2','x')%表示符号函数
y=f(0)%将x=0带入符号函数中,求符号函数的值
如果你要问的只是function的用法,那么需要另外建立一个单独的文件,相对来说不如上述方法简单。
function的用法是
1新建一个m文件
function f=f(x)
f(1)=x^3+3*x+4;%f(1)表示第一个方程,如果还有可以追加f(2),一次类推,当然只有一个时f(1)可以简写成f。
2将其保存为f_x.m
2在matlab命令窗口中直接调用f_x(0)就可以了
>> f_x(0)
ans =
- 2 回答
- 0 关注
- 588 浏览
添加回答
举报
0/150
提交
取消