绘制`sqrt(1 + 1 /(kr)^ 2)`的3D图形

时间:2012-02-13 19:19:43

标签: matlab math plot

我试图在MATLAB中绘制以下等式:

ratio = sqrt(1+1/(kr)^2)

x和y轴上的k和r,以及z轴上的比率。我使用meshgrid来创建一个矩阵,其中x和y的值从1到10变化:

[x,y] = meshgrid([1:1:10],[1:1:10]);

现在的问题是为z创建值。我试图只输入整个等式,但结果如下:

>> Z = sqrt(1+1/(x .* y)^2)??? 
Error using ==> mldivide
Matrix dimensions must agree.

所以我所做的就是手动完成整个过程,最终产生正确的图形:

z = z^2;
z = 1 ./ z;
z = 1 + z;
z = sqrt(z);
mesh(x,y,z)

有更优雅的方法吗?或者输入方程式并让MATLAB处理其余的方法?

1 个答案:

答案 0 :(得分:3)

试试这个:

 Z = sqrt(1+1./(x .* y).^2);
 surf(Z);

您遇到的问题与使用/代替./^2代替.^2

相关