我想在Matlab中用曲面上預定義的等高線生成曲面圖。我已經在Mathematica中生成了這個圖,並且希望在Matlab中創建相同的圖形。等高線和曲面的Matlab
具備以下功能我所限定的表面
k2[G_, V_] = Sqrt[G]*Exp[-V];
k1[G_] = Sqrt[G]*Exp[-10];
L1[G_, V_] = -0.5*(k1[G_] + 2*k2[G, V]) + 0.5*Sqrt[k1[G_]^2 + 4*k2[G, V]^2];
和
hike=ParametricPlot3D[{10, 0, 0} + {x^2, x, -(1/L1[10 + x^2, x])}, {x, 0, 12},PlotStyle -> Directive[Thick, Red]];
hikeHeight=ParametricPlot3D[{10, 0, 0} + {x^2,x, -z*(1/L1[10 + x^2, x])}, {x, 0, 12}, {z, 0, 1},PlotStyle -> Directive[Gray], Mesh -> None];
然後我繪製表面和輪廓線一起在表面上的參數曲線:
surf= Plot3D[-1/L1[G, V], {G, 10, 100}, {V, 0, 12}];
Show[surf, hike, hikeHeight, AxesLabel -> {G, V,Z}, Boxed -> False]
在Matlab中評估函數並生成相同圖的過程是什麼?
這我走多遠我MATLAB嘗試
[X,Y,Z] = peaks(25);
curvX=diag(X);
curvY=diag(Y);
curvZ=diag(Z);
nn = 401;
xi = linspace(-3.0, 3.0, nn);
yi = xi;
[xi, yi] = meshgrid(xi, yi);
zi = interp2(X, Y, Z, xi, yi, 'spline');
figure()
surf(xi, yi, zi,'LineStyle', 'none', 'FaceColor', 'interp')
colormap(parula)
alpha 0.7
hold on
surf(diag(curvX),diag(curvY),diag(curvZ),'LineStyle', 'none')
表面和參數曲線是明顯不一樣,但這個想法是繪製表面
的片相同
告訴我們你得到了什麼!請添加你的嘗試,這不是一個編碼轉換服務!還有,Mathematica是什麼? –
有時候是這樣,對不起:) –
@DylanRichardMuir我希望你爲了樂趣而做到了!一般來說,我們不要過多地鼓勵人們粘貼他們的代碼。好的答案btw –