【MATLAB基础】—错误使用 surf (line 74) 解决

首先对于surf函数的格式为:surf(x,y,z),要求z必须为矩阵而不能为标量或矢量。

例:要求用surf函数画出:f=sin(x)cos(2y)-z的图像。

(错误)可能大部分刚开始编程为:

clear
clc
x=0:0.2*pi:pi*5;
y=0:0.2*pi:pi*5;
z=sin(x).*cos(2*y);
surf(x,y,z)

提示:

错误使用 surf (line 74)
Z 必须为矩阵,不能是标量或矢量。

出错 Untitled50 (line 6)
surf(x,y,z)

对于这种情况,是z矩阵的维度出现问题了,上述代码中x为1\times 26 double,y为1\times 26 double,z也为1\times 26 double。上述说z不能为一串矢量,所以出现错误。

正确的z的大小应为26\times 26 double(正确)修改后的代码为:

clear
clc
x=0:0.2*pi:pi*5;
y=0:0.2*pi:pi*5;
z=sin(x')*cos(2*y);
surf(x,y,z)

应该用x的转置来进行相乘求出z矩阵,最后求出三维图像。

发布了64 篇原创文章 · 获赞 70 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/fanjufei123456/article/details/104480789
74