2015-11-06 162 views
0

我在下面有下面的代码,但我无法测试它,因为我现在没有Matlab和我在一起,恐怕我没有时间自己测试它了当我终于明白了。我试图绘制三种不同类型函数的y轴和x轴(仅限两维)的电平曲线图和三维图。如果有人能指出下面的代码有什么问题,我将不胜感激。在Matlab中绘制三维图形和水平曲线

************************************************************** 
**plotting functions -- level curves and 3d graph** 

x_val = linspace(0, 100, 200); 
y_val = linspace(0, 100, 200); 
[x, y] = meshgrid(x_val, y_val); 
z = ln(x).+y.; 
figure 
contour3(y, x, z) 
contour(y, x, z) 


******************************** 

z = (x.^1/2)+y.; 
figure 
contour3(y, x, z) 
contour(y, x, z) 

********************************* 


z = (x.^1/3)+y.; 
figure 
contour3(y, x, z) 
contour(y, x, z) 

回答

2

ln不是一个有效的matlab符号,除了上面提到的过多的点和注释格式之外。下面的Matlab运行。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%plotting functions -- level curves and 3d graph%% 

x_val = linspace(0, 100, 200); 
y_val = linspace(0, 100, 200); 
[x, y] = meshgrid(x_val, y_val); 
z = log(x)+y; 
figure 
contour3(y, x, z) 
figure 
contour(y, x, z) 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

z = (x.^1/2)+y; 
figure 
contour3(y, x, z) 
figure 
contour(y, x, z) 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 


z = (x^1/3)+y; 
figure 
contour3(y, x, z) 
figure 
contour(y, x, z) 
+0

好的答案,+1。看看OP代码,它似乎想要(但他应该确认)同一图上的'contour'和'contour3';如果是这样的话,你应该用'hold on'来替换'contour'与'contour'之间的'figure'。 –

0

对于初学者来说,MATLAB中的注释是“%”而不是“*”。

我想,你有一些错误,试图做元素明智的操作符。

你三个Z的任务有太多的点:“+”

z = log(x)+y; 
z = (x.^1/2)+y; 
z = (x.^1/3)+y; 

这是没有必要使用,因为MATLAB自动将矩阵按元素。

+0

您是否运行过您建议的代码?注意'ln'不是一个MatLab函数,对于'自然对数',它应该是'log'。 –

+0

很好,谢谢。当我测试它时,我确实更改为log(x),但是在创建我的答案时,我从OP代码中复制并粘贴了该代码。 – gariepy