sfit型からの3次元等高線の作成

6 ビュー (過去 30 日間)
iga50storm
iga50storm 2017 年 11 月 16 日
編集済み: Jiro Doke 2017 年 11 月 17 日
まず、測定点間を補間する曲面を"fit"関数を使って近似し、この操作によりsfitの型に近似曲面が作られました。 そのあと"plot"関数を用いて図の通り3次元の曲面と2次元の等高線をつくる所までできました。 しかし、3次元の等高線が作れず困っています。解決方法があれば教えていただけないでしょうか? (Web上で色々調べたのですが、plot関数でsfit型からの3次元等高線の命令が見つかりませんでした。)
x=[1;1;2;2;2;2;3;3;3;3;4;4];
y=[2;3;1;2;3;4;1;2;3;4;2;3];
Z=[89;90.7;87.5;90.9;91.8;90.4;90.5;90.1;86.1;91.8;91;92.3];
sf = fit([x, y],Z,'cubicinterp');
%3次元プロット
figure;
plot(sf,[x,y],Z);
%等高線プロット
figure;
plot(sf, [x,y],Z,'Style', 'Contour');
  2 件のコメント
michio
michio 2017 年 11 月 16 日
3次元等高線とはどういうイメージでしょうか?何か参考になる画像があれば教えてください。
iga50storm
iga50storm 2017 年 11 月 16 日
コメントありがとうございます。 contour3で描かれる等高線をイメージしています。

サインインしてコメントする。

採用された回答

Jiro Doke
Jiro Doke 2017 年 11 月 16 日
編集済み: Jiro Doke 2017 年 11 月 17 日
sfit オブジェクトを使って X Y のグリッドに対して再評価し、 contour3 を呼べば良いと思います。
xx = linspace(min(x),max(x));
yy = linspace(min(y),max(y));
[XX,YY] = meshgrid(xx,yy);
ZZ = sf(XX,YY);
figure
contour3(XX,YY,ZZ,30)
  1 件のコメント
iga50storm
iga50storm 2017 年 11 月 16 日
解決致しました。 ご丁寧にソースコードまでありがとうございました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange近似の後処理 についてさらに検索

Community Treasure Hunt

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

Start Hunting!