contourslice で作成された等値線に​その値を表示させられ​ないでしょうか。

3次元空間データの任意の3次元曲面上での等値線をcontoursliceで描画できることが分かりましたが,その等値線の値を表示させることができません。
[X,Y,Z] = meshgrid(-5:0.2:5);
V = X.*exp(-X.^2-Y.^2-Z.^2);
[xsurf,ysurf] = meshgrid(-2:0.2:2);
zsurf = xsurf.^2-ysurf.^2;
s=contourslice(X,Y,Z,V,xsurf,ysurf,zsurf,20);
set(s,'EdgeColor','k')
view(3)
grid on
contour3の'ShowText','on'の様な動作をさせたいがどのようにしたらよいかわかりません。
[X,Y] = meshgrid(-2:0.25:2);
Z = X.*exp(-X.^2-Y.^2);
contour3(X,Y,Z,[-.2 -.1 .1 .2],'ShowText','on')
何とか実現できないでしょうか。

 Risposta accettata

Masahiro Matsui
Masahiro Matsui il 2 Mar 2021
Modificato: Masahiro Matsui il 3 Mar 2021

0 voti

ある程度自己解決しました。
[X,Y,Z] = meshgrid(-5:0.2:5);
V = X.*exp(-X.^2-Y.^2-Z.^2);
[xsurf,ysurf] = meshgrid(-2:0.2:2);
zsurf = xsurf.^2-ysurf.^2;
lv=-0.3:0.05:0.3;
s=contourslice(X,Y,Z,V,xsurf,ysurf,zsurf,lv);
%---
for il=1:size(s,1)
clab=num2str(s(il).CData(1));
text(s(il).XData(1),s(il).YData(1),s(il).ZData(1),clab);
end
%---
view(3)
grid on

Più risposte (0)

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!