回 帖 发 新 帖 刷新版面

主题:问个matlab三维的小问题!

编了个小程序,有一个问题想不通,不知道x'与x之间的区别?
我编的:
x=[0:0.1:2*pi];
y=[0:0.1:2*pi];
z=sin(x).*cos(y);
surf(x,y,z)

答案:
 x=[0:0.1:2*pi];
y=[0:0.1:2*pi];
z=sin(x')*cos(y);
surf(x,y,z)

   我没想出我为什么编错!矩阵运算应该用点乘啊,为什么我的运算出错啊?答案中的x'是什么意思啊?和x有什么区别啊?在什么情况下使用啊?

回复列表 (共4个回复)

沙发

z=sin(x).*cos(y);
按照上公式计算的结果z为一个数值,而非和x,y同维的向量
z=sin(x')*cos(y);转置后相乘计算的结果就变成和x,y同维的向量
楼上可以试一试,将程序一步步的运行,可以发现一些问题

板凳

直接用sin(x).cos(y)得到是个向量
z应该是个网格点矩阵,可以将代码写成下面的形式:
x=0:0.1:2*pi;
y=0:0.1:2*pi;
[X,Y]=meshgrid(x,y);
z=sin(X).*cos(Y);
surf(z)

3 楼

转置吧

4 楼


谢谢各位的解答!

我来回复

您尚未登录,请登录后再回复。点此登录或注册