
MATLAB遇到一点麻烦~ 想做出一个二元函数的三维曲线图,但是提示出错,代码如下:
>>x=linspace(0,0.2,0.001);>>y=linspace(0,2,0.001);>>z=20/3*pi*cos(20/3*pi*x)-10/3*sin...
>> x=linspace(0,0.2,0.001);
>> y=linspace(0,2,0.001);
>> z=20/3*pi*cos(20/3*pi*x)-10/3*sin(20/3*x)/sqrt(y.^2-cos(20/3*x));
>> subplot(1,2,1)
>> mesh(x,y,z);
??? Error using ==> mesh at 80
Z must be a matrix, not a scalar or vector.
对了,这是个三维曲面不是三维曲线,打错啦~ 展开
>> y=linspace(0,2,0.001);
>> z=20/3*pi*cos(20/3*pi*x)-10/3*sin(20/3*x)/sqrt(y.^2-cos(20/3*x));
>> subplot(1,2,1)
>> mesh(x,y,z);
??? Error using ==> mesh at 80
Z must be a matrix, not a scalar or vector.
对了,这是个三维曲面不是三维曲线,打错啦~ 展开
1个回答
展开全部
多个问题:
1、linspace函数的第3个参数不是步长,而是数据点的个数;
2、画曲面图需要产生网格数据,要用meshgrid;
3、计算z的最后一个除号应为点除(./)。
x=linspace(0,0.2,20);
y=linspace(0,2,20);
[x,y]=meshgrid(x,y);
z=20/3*pi*cos(20/3*pi*x)-10/3*sin(20/3*x)./sqrt(y.^2-cos(20/3*x));
但这样仍然有问题:计算出来的z是复数,应该是x或y的取值范围不当,具体请题主自己再看看。

2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询