Plot 倍频程二次曲面作图

Plot 倍频程二次曲面作图,plot,octave,Plot,Octave,我被分配了一个项目,要求我画一些二次曲面。我努力地下载一些软件,这样我的图表看起来比其他免费在线资源的图表要好。我决定试试八度音阶,看看能不能让它工作,但我遇到了一个问题。尝试绘图时: 我查阅了一些教程,但到目前为止,我还不能确定我的错误。这是我使用的代码: clear; x = [-3:1:3]; y = x; [xx,yy] = meshgrid(x,y); zz=sqrt(-9*xx.^2+9*yy.^2); figure mesh(xx,yy,zz); 非常感谢您的建议。您

我被分配了一个项目,要求我画一些二次曲面。我努力地下载一些软件,这样我的图表看起来比其他免费在线资源的图表要好。我决定试试八度音阶,看看能不能让它工作,但我遇到了一个问题。尝试绘图时:

我查阅了一些教程,但到目前为止,我还不能确定我的错误。这是我使用的代码:

clear;

x = [-3:1:3];
y = x;

[xx,yy] = meshgrid(x,y);

zz=sqrt(-9*xx.^2+9*yy.^2);

figure

mesh(xx,yy,zz);

非常感谢您的建议。

您的脚本在命令窗口中抛出的错误是:

   error: mesh: X, Y, Z, C arguments must be real
   error: called from
       mesh at line 61 column 5
       blah at line 15 column 1
因为你的
x
y
是真实的,所以想象是从一个小于0的数字的平方根开始的。查看您的等式,这将发生在任何(
x
y
)对中,其中
x
大于
y

最简单的修复方法是将所有复数(值为“代码>ZZ</CODE”的值设置为非零虚部)为0(这将绘制值)或NaN(这将不绘制值)。考虑此脚本(您的加过滤):


脚本的命令窗口中抛出的错误是:

   error: mesh: X, Y, Z, C arguments must be real
   error: called from
       mesh at line 61 column 5
       blah at line 15 column 1
因为你的
x
y
是真实的,所以想象是从一个小于0的数字的平方根开始的。看看你的方程,这将发生在
x
y
大于
y
的任何(
x
)对上

最简单的修复方法是将所有复数(值为“代码>ZZ</CODE”的值设置为非零虚部)为0(这将绘制值)或NaN(这将不绘制值)。考虑此脚本(您的加过滤):

我更喜欢这样:

x = -3:0.1:3;
y = x;    
[xx,yy] = meshgrid(x,y);  
zz=sqrt(-9*xx.^2+9*yy.^2);   % zz will have both + and - 

figure        
% zz = abs(zz) ; 

mesh(xx,yy,abs(zz));
hold on
mesh(xx,yy,-abs(zz));
我更喜欢这样:

x = -3:0.1:3;
y = x;    
[xx,yy] = meshgrid(x,y);  
zz=sqrt(-9*xx.^2+9*yy.^2);   % zz will have both + and - 

figure        
% zz = abs(zz) ; 

mesh(xx,yy,abs(zz));
hold on
mesh(xx,yy,-abs(zz));

谢谢您的帮助!有没有办法同时生成z的正值和负值?@Max,如中所示,您可以使用
hold('on')
(或
hold on
,以您喜欢的为准)然后使用相同的
xx
yy
矩阵简单地绘制
zz
的负值。感谢您的帮助!有没有办法生成z的正值和负值?@Max,如中所示,您可以使用
hold('on')
(或
hold on
,以您喜欢的为准)然后使用相同的
xx
yy
矩阵简单地绘制
zz
的负数。