>> x=0:0.001:720;
>> y=sind(x);
>> z=cosd(x);
>> surf(x,y,z);
我想用上面的代码绘制曲面,即X轴为x,y为Y轴,Z轴为Z轴。我还为以下目的编写了FORTRAN代码,创建了一个csv文件,并将其绘制在原点。我得到一个结果:
但是,在MATLAB中,我在使用时得到了类似的想法: -
>> plot3(x,y,z)
如下图所示:
但它不是表面(出于显而易见的原因)。
使用surf
命令时,我也收到错误说:
Z
必须是矩阵,而不是标量或向量。
我的代码可能出现什么问题?
使用surf
需要Z
作为矩阵。使用像meshgrid
这样的函数很容易修复(也很有用griddata
)。
但是Z
和Y
都只是X
的功能所以我无法解释为什么你的情节Z
值会随着X
和Y
而改变。根据您列出的分析(数学)方程式,Z
值应该在Y
维度上保持不变。
stepsize = 1; % use 10 for cleaner look
x = 0:stepsize:720;
y = sind(x);
[X,Y] = meshgrid(x,y);
Z = cosd(X);
surf(X,Y,Z)
请注意,轮廓线在qazxsw poi维度上是直的并且是平行的(使用qazxsw poi)。 qazxsw poi
另一种方法是循环通过Y
(由surfc(X,Y,Z)
索引)和(由x
索引)的元素,其中i
和y
(向量)计算j
,其中x
是矩阵。由于行和列的默认分配,此方法需要转置y
矩阵,例如Z(i,j)
。
相关文章:
Z
Z