Huawei Cup:3Dデータの視覚化[Matlab Issue 139] [数学的モデリング14]

1.背景

数学的モデリングの過程で、3次元データを視覚化する状況に遭遇することがよくあります。2017年大学院数理モデリングコンテストの質問A(救助と災害救援におけるUAVの最適化)を例にとると、この質問の背景は次のとおりです。
2017年8月8日、四川省阿波県九海郷郡でマグニチュード7.0の地震が発生しました。 。不可逆的な死傷者と主要な財産の損失。地震予知は難しいため、タイムリーで効率的な災害後の救助は、地震による損失を減らすための重要な手段です。新しいタイプの配達車両として、UAVは救助活動において重要な役割を果たすことができます。その使用効率を向上させるために、ドローンの最適な使用におけるいくつかの問題を解決してください。
添付資料1は、2913列と2775行の地震地域の標高データを示しています。最初の行と最初の列は、ポイント(0,0)での高度値(単位:メートル)を示し、隣接するセル間の距離は38.2メートル、つまり、m番目の行とn番目のセルのデータを示します。列は、座標(38.2(m-1)、38.2(n-1))の高さの値を表します。
特に指定のない限り、この質問のドローンは、平均飛行速度60 km / h、最大耐久性8時間、飛行中の旋回半径100メートル以上、最大上昇(潜水)角度±15を想定しています。 °、他の障害物(地面を含む)からの安全な飛行距離は50メートル以上であり、最大飛行高度は海抜5000メートルです。すべてのドローンは、手動制御なしで計画されたルートに従って自律的に飛行し、ミッションの完了後に自動的に元の基地に戻ります。

2.はじめに

地震地域の標高データは、主題の付録1に記載されています。このデータには、経度、緯度、高度の3つの次元が含まれています。matlabで3次元データを表示する最も一般的な方法は、3次元サーフェスを描画することです。この機能は、サーフ関数によって実現されます。効果を図1に示します。
ここに写真の説明を挿入
さらに、3次元データは輪郭マップで記述できます。実際、高さを表すために色が使用されています。matlabの輪郭関数を使用した1次元データで目標を達成できます。その効果は、図2-に示されています。
ここに写真の説明を挿入

3、ソースコード

以下は、3D地形図と等高線図を実装するために使用されるコードです-

function mainfun()

S1_rawdata=importdata('附件1 区域高程数据.xlsx');
S1_rawdata=S1_rawdata'/1000;
position_Keyareas =[30.3  89.8
66.0  84.7
98.4  76.7
73.7  61.0
57.9  47.6
86.8  22.0
93.6  48.8];

x=0:0.0382*10:2774*0.0382;
y=0:0.0382*10:2912*0.0382;

%三维地形图
[x,y]=meshgrid(x,y);
figure
surf(x,y,S1_rawdata(1:10:end,1:10:end))

xdata0=0:0.0382:2774*0.0382;
ydata0=0:0.0382:2912*0.0382;

figure
contour(xdata0,ydata0,S1_rawdata,[2.2,2.4,2.6,2.8,3,3.200,3.400,3.600,3.800,4.000,4.1500])
hold on
plot(110,0,'r>','MarkerFaceColor','r')
text(100,5,'基地H','Color','r')
centername={
    
    'A','B','C','D','E','F','G'};
t=0:0.1:2*pi;
xx=sin(t);
yy=cos(t);
for i=1:7
    plot(position_Keyareas(i,1),position_Keyareas(i,2),'ro','MarkerFaceColor','r')
    text(position_Keyareas(i,1)-3,position_Keyareas(i,2)+3,centername{
    
    i},'Color','r')
    plot(10*xx+position_Keyareas(i,1),10*yy+position_Keyareas(i,2),'r--')
end

%C平均海拔

mean(mean(S1_rawdata(2317:2837,1749:2269)))

contour(xdata0,ydata0,S1_rawdata,[3,4.150])
hold on
plot(110,0,'r>','MarkerFaceColor','r')
text(100,5,'基地H','Color','r')
centername={
    
    'A','B','C','D','E','F','G'};
t=0:0.1:2*pi;
xx=sin(t);
yy=cos(t);
for i=1:7
    plot(position_Keyareas(i,1),position_Keyareas(i,2),'ro','MarkerFaceColor','r')
    text(position_Keyareas(i,1)-3,position_Keyareas(i,2)+3,centername{
    
    i},'Color','r')
    plot(10*xx+position_Keyareas(i,1),10*yy+position_Keyareas(i,2),'r--')
end

for i=1:44
    for j=1:44
        line([2.5*i,2.5*i],[0,110])
        line([0,110],[2.5*i,2.5*i])
    end
end

注:完全なコードまたは記述については、QQ1564658423を追加してください。
過去のレビュー>>>>>>
[Matlab 035] [数理モデリング1]セルラーオートマトンに基づく人口避難シミュレーションmatlab
[Matlab 036] [数理モデリング2]粒子群最適化ELMネットワーク予測
[Matlab037 [数理モデリング3]時間-可変パラメータ確率的揮発性ベクトル自動回帰モデル(TVP-VAR)
[Matlab 038] [データモデリング4]ファジーバイナリ決定ツリーmatlabソースコード
[Matlab039] [数学的モデリング5]セルラーオートマトンに基づく4レーントラフィックフロー
[Matlab040] [数理モデリング6]赤血球を実現するためのMatlab
[Matlab 041] [数理モデリング7] Matlab電力予測予測グレースケール予測結合予測指数平滑回帰解析
[Matlab042問題] [数理モデリング8]地下鉄運行のChongqingLine 3シミュレーション
[Matlab043号] [数理モデリング9]高速道路流予測Matlab
[Matlab044号] [数理モデリング] 10]セルラーオートマトンに基づく人口避難シミュレーションmatlab
[数理モデリング11]洪水ダムモデルを解くためのMatlab [Matlab 045]
[数理モデリング12] SEIRモデルを実装するためのMatlab [Matlab115]
キュー理論モデルとGUIインターフェイスを使用したMATLAB実装[Matlab127] [数理モデリング13]

おすすめ

転載: blog.csdn.net/TIQCmatlab/article/details/112792636