{"id":66989,"date":"2026-01-27T23:18:35","date_gmt":"2026-01-27T15:18:35","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/66989.html"},"modified":"2026-01-27T23:18:35","modified_gmt":"2026-01-27T15:18:35","slug":"%e3%80%90%e6%95%b0%e6%a8%a1%e7%be%8e%e8%b5%9b%e7%be%8e%e6%9c%af%e5%a4%a7%e8%b5%9b%ef%bc%9f%e3%80%91o%e5%a5%96%e8%ae%ba%e6%96%87%e5%9b%be%e7%89%87%e5%a4%8d%e5%88%bb-%e9%ab%98%e7%ba%a7","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/66989.html","title":{"rendered":"\u3010\u6570\u6a21\u7f8e\u8d5b=\u7f8e\u672f\u5927\u8d5b\uff1f\u3011O\u5956\u8bba\u6587\u56fe\u7247\u590d\u523b\u2014\u2014\u9ad8\u7ea7\u7ed8\u56fematlab\u4ee3\u7801\u96c6\u9526\uff0c\u8ba9\u4f60\u6446\u8131\u753b\u56fe\u201c\u4e00\u773cMATLAB\u201d\u7684\u75db\u82e6\uff01"},"content":{"rendered":"<h3 id=\"%E7%9B%AE%E5%BD%95%E2%80%94%E2%80%94\" style=\"background-color:transparent\">\u76ee\u5f55<\/h3>\n<p id=\"%E6%8A%98%E7%BA%BF%E5%9B%BE%E2%80%94%E2%80%94-toc\" style=\"margin-left:80px\">\u6298\u7ebf\u56fe\u2014\u2014<\/p>\n<p id=\"2D%E7%B4%AF%E8%AE%A1%E6%8A%98%E7%BA%BF%E5%9B%BE-toc\" style=\"margin-left:120px\">2D\u7d2f\u8ba1\u6298\u7ebf\u56fe<\/p>\n<p id=\"3D%E5%B8%A6%E9%80%8F%E6%98%8E%E5%BA%A6%E5%88%87%E7%89%87-toc\" style=\"margin-left:120px\">3D\u5e26\u900f\u660e\u5ea6\u5207\u7247<\/p>\n<p id=\"2D%20%E5%A4%9A%E7%BA%BF%E5%AF%B9%E5%BA%94%E5%90%8C%E5%9B%BE%E4%BE%8B%EF%BC%8C%E9%99%90%E5%AE%9A%E8%BE%B9%E7%95%8C-toc\" style=\"margin-left:120px\">2D \u591a\u7ebf\u5bf9\u5e94\u540c\u56fe\u4f8b&#xff0c;\u9650\u5b9a\u8fb9\u754c<\/p>\n<p id=\"2D%20%E5%8F%8C%E5%9D%90%E6%A0%87%EF%BC%8C%E5%B8%A6%E5%85%89%E6%99%95%E6%95%88%E6%9E%9C%EF%BC%8C%E8%A6%86%E7%9B%96%E6%B8%90%E5%8F%98%E9%A2%9C%E8%89%B2%E5%A1%AB%E5%85%85%E5%8C%BA%E5%9F%9F%EF%BC%8C%E5%B8%A6%E5%9B%BE%E4%BE%8B-toc\" style=\"margin-left:120px\">2D \u53cc\u5750\u6807&#xff0c;\u5e26\u5149\u6655\u6548\u679c&#xff0c;\u8986\u76d6\u6e10\u53d8\u989c\u8272\u586b\u5145\u533a\u57df&#xff0c;\u5e26\u56fe\u4f8b<\/p>\n<p id=\"%E6%9F%B1%E7%8A%B6%E5%9B%BE%E2%80%94%E2%80%94-toc\" style=\"margin-left:80px\">\u67f1\u72b6\u56fe\u2014\u2014<\/p>\n<p id=\"3D%20%E4%B8%8D%E5%90%8C%E9%A2%9C%E8%89%B2%20%E6%9F%B1%E7%8A%B6%E5%9B%BE-toc\" style=\"margin-left:120px\">3D \u4e0d\u540c\u989c\u8272 \u67f1\u72b6\u56fe<\/p>\n<p id=\"2D%20%E5%8F%8C%E5%9D%90%E6%A0%87%20%E6%9F%B1%E7%8A%B6%E5%9B%BE%E6%8A%98%E7%BA%BF%E5%9B%BE%E6%9D%82%E4%BA%A4-toc\" style=\"margin-left:120px\">2D \u53cc\u5750\u6807 \u67f1\u72b6\u56fe\u6298\u7ebf\u56fe\u6742\u4ea4<\/p>\n<p id=\"%E5%85%B6%E4%BB%96%E7%BB%9F%E8%AE%A1%E5%88%86%E5%B8%83%E5%9B%BE%E2%80%94%E2%80%94-toc\" style=\"margin-left:80px\">\u5176\u4ed6\u7edf\u8ba1\u5206\u5e03\u56fe\u2014\u2014<\/p>\n<p id=\"%E4%BA%91%E9%9B%A8%E5%9B%BE%E5%92%8C%E7%AE%B1%E5%9E%8B%E5%9B%BE%E7%9A%84%E6%9D%82%E4%BA%A4%E5%9B%BE%EF%BC%9F-toc\" style=\"margin-left:120px\">\u4e91\u96e8\u56fe\u548c\u7bb1\u578b\u56fe\u7684\u6742\u4ea4\u56fe&#xff1f;<\/p>\n<p id=\"%E5%8D%8A%E5%B0%8F%E6%8F%90%E7%90%B4%E5%9B%BE-toc\" style=\"margin-left:120px\">\u534a\u5c0f\u63d0\u7434\u56fe<\/p>\n<hr id=\"hr-toc\" \/>\n<h4 id=\"%E6%8A%98%E7%BA%BF%E5%9B%BE%E2%80%94%E2%80%94\" style=\"background-color:transparent\">\u6298\u7ebf\u56fe\u2014\u2014<\/h4>\n<h5 id=\"2D%E7%B4%AF%E8%AE%A1%E6%8A%98%E7%BA%BF%E5%9B%BE\" style=\"background-color:transparent\">2D\u7d2f\u8ba1\u6298\u7ebf\u56fe<\/h5>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"626\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151827-6978d743b9620.png\" width=\"995\" \/><\/p>\n<p>\u81ea\u5236<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"684\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151828-6978d74401e71.png\" width=\"1070\" \/><\/p>\n<p>\u4ee3\u7801&#xff1a;<\/p>\n<p>clear; clc; close all;<\/p>\n<p>%% \u81ea\u5b9a\u4e49\u533a<br \/>\nyears &#061; 1900:4:2024;<br \/>\ndata_bronze &#061; [2,3,5,6,8,10,7,9,6,3,0,0,2,5,8,7,5,3,4,6,8,5,3,4,7,9,10,12,11,9,8,10];<br \/>\ndata_silver &#061; [0,0,1,2,3,2,4,3,2,1,0,0,1,2,3,4,2,3,1,3,5,6,4,3,5,7,6,8,7,6,5,7];<br \/>\ndata_gold &#061; [0,0,0,1,2,3,2,4,3,2,0,0,0,1,2,3,1,2,3,4,5,4,3,5,6,8,7,10,9,8,7,9];<\/p>\n<p>color_bronze &#061; [0.95 0.75 0.5];<br \/>\ncolor_silver &#061; [0.95 0.95 0.95];<br \/>\ncolor_gold &#061; [.95 0.85 0.5];<br \/>\nline_color &#061; [0.2 0.2 0.2];<br \/>\nscatter_color &#061; [0.98 0.98 0.98];<\/p>\n<p>xlabel_txt &#061; &#039;Time (years)&#039;;<br \/>\nylabel_txt &#061; &#039;Medals&#039;;<br \/>\nfontSize &#061; 11;<br \/>\nlabelFontSize &#061; 13;<\/p>\n<p>interp_points &#061; 200;<br \/>\nyears_interp &#061; linspace(1900, 2024, interp_points);<\/p>\n<p>data_bronze_interp &#061; interp1(years, data_bronze, years_interp, &#039;pchip&#039;);<br \/>\ndata_silver_interp &#061; interp1(years, data_silver, years_interp, &#039;pchip&#039;);<br \/>\ndata_gold_interp &#061; interp1(years, data_gold, years_interp, &#039;pchip&#039;);<br \/>\ntotal_medals &#061; data_bronze &#043; data_silver &#043; data_gold;<br \/>\ntotal_interp &#061; interp1(years, total_medals, years_interp, &#039;pchip&#039;);<\/p>\n<p>% \u8ba1\u7b97\u94f6\u724c\u7d2f\u8ba1\u548c\u91d1\u724c\u7d2f\u8ba1\u6570\u636e<br \/>\nsilver_cum &#061; data_bronze &#043; data_silver;<br \/>\nsilver_cum_interp &#061; interp1(years, silver_cum, years_interp, &#039;pchip&#039;);<\/p>\n<p>%% \u7edf\u4e00\u6a21\u677f\u6267\u884c\u533a<br \/>\nfigure(&#039;Position&#039;,[150,150,1000,600],&#039;Color&#039;,&#039;white&#039;);<br \/>\nax &#061; gca;<br \/>\nhold(ax, &#039;on&#039;);<\/p>\n<p>% \u521b\u5efa\u6e10\u53d8\u989c\u8272<br \/>\nn_points &#061; length(years_interp);<br \/>\ngradient_bronze &#061; zeros(n_points, 3);<br \/>\ngradient_silver &#061; zeros(n_points, 3);<br \/>\ngradient_gold &#061; zeros(n_points, 3);<\/p>\n<p>for i &#061; 1:n_points<br \/>\n    pos_ratio &#061; i\/n_points;<\/p>\n<p>    % \u94dc\u724c\u6e10\u53d8&#xff08;\u66f4\u5feb\u7684\u6e10\u53d8\u9891\u7387&#xff09;<br \/>\n    intensity_bronze &#061; 0.7 &#043; 0.13 * sin(pos_ratio * 7*pi);<br \/>\n    gradient_bronze(i,:) &#061; color_bronze * intensity_bronze;<\/p>\n<p>    % \u94f6\u724c\u6e10\u53d8<br \/>\n    intensity_silver &#061; 0.75 &#043; 0.25 * cos(pos_ratio * 5*pi);<br \/>\n    gradient_silver(i,:) &#061; color_silver * intensity_silver;<br \/>\n    gradient_silver(i,:) &#061; min(gradient_silver(i,:), 1);<\/p>\n<p>    % \u91d1\u724c\u6e10\u53d8<br \/>\n    intensity_gold &#061; 1 &#043; 0.05 * sin(pos_ratio * 19*pi);<br \/>\n    gradient_gold(i,:) &#061; color_gold * intensity_gold;<br \/>\nend<\/p>\n<p>% \u7ed8\u5236\u5806\u53e0\u533a\u57df&#xff08;\u4f7f\u7528\u6e10\u53d8\u586b\u5145&#xff09;<br \/>\nstack_bottom &#061; zeros(1, n_points);<br \/>\ny_stack &#061; [data_bronze_interp; data_silver_interp; data_gold_interp];<br \/>\nlayer_names &#061; {&#039;Bronze&#039;,&#039;Silver&#039;,&#039;Gold&#039;};<br \/>\nlayer_colors &#061; {color_bronze, color_silver, color_gold};<\/p>\n<p>for layer &#061; 1:3<br \/>\n    y_top &#061; stack_bottom &#043; y_stack(layer, :);<br \/>\n    x_fill &#061; [years_interp, fliplr(years_interp)];<br \/>\n    y_fill &#061; [y_top, fliplr(stack_bottom)];<\/p>\n<p>    if layer &#061;&#061; 1<br \/>\n        c_data &#061; [gradient_bronze; flipud(gradient_bronze)];<br \/>\n        patch(x_fill, y_fill, 1, &#039;FaceVertexCData&#039;, c_data, &#8230;<br \/>\n              &#039;FaceColor&#039;, &#039;interp&#039;, &#039;EdgeColor&#039;, &#039;none&#039;, &#8230;<br \/>\n              &#039;FaceAlpha&#039;, 0.9, &#039;DisplayName&#039;, layer_names{layer});<br \/>\n    elseif layer &#061;&#061; 2<br \/>\n        c_data &#061; [gradient_silver; flipud(gradient_silver)];<br \/>\n        patch(x_fill, y_fill, 1, &#039;FaceVertexCData&#039;, c_data, &#8230;<br \/>\n              &#039;FaceColor&#039;, &#039;interp&#039;, &#039;EdgeColor&#039;, &#039;none&#039;, &#8230;<br \/>\n              &#039;FaceAlpha&#039;, 0.9, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\n    else<br \/>\n        c_data &#061; [gradient_gold; flipud(gradient_gold)];<br \/>\n        patch(x_fill, y_fill, 1, &#039;FaceVertexCData&#039;, c_data, &#8230;<br \/>\n              &#039;FaceColor&#039;, &#039;interp&#039;, &#039;EdgeColor&#039;, &#039;none&#039;, &#8230;<br \/>\n              &#039;FaceAlpha&#039;, 0.9, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\n    end<\/p>\n<p>    stack_bottom &#061; y_top;<br \/>\nend<\/p>\n<p>% \u7ed8\u5236\u5956\u724c\u8d8b\u52bf\u7ebf&#xff08;\u4e0d\u8981\u56fe\u4f8b&#xff09;<br \/>\nmedal_data &#061; {data_bronze_interp, silver_cum_interp, total_interp};<br \/>\nline_styles &#061; {&#039;&#8211;&#039;, &#039;:&#039;, &#039;-.&#039;};<br \/>\nline_widths &#061; [2, 2, 2.5];<\/p>\n<p>for i &#061; 1:3<br \/>\n    current_data &#061; medal_data{i};<\/p>\n<p>    % \u5149\u6655\u6548\u679c<br \/>\n    for j &#061; 4:-1:1<br \/>\n        line_w &#061; line_widths(i) &#043; (j-1)*0.8;<br \/>\n        alpha_val &#061; 0.10 &#8211; (j-1)*0.02;<\/p>\n<p>        plot(ax, years_interp, current_data, &#039;LineStyle&#039;, line_styles{i}, &#8230;<br \/>\n             &#039;LineWidth&#039;, line_w, &#039;Color&#039;, [line_color, alpha_val], &#8230;<br \/>\n             &#039;Marker&#039;, &#039;none&#039;, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\n    end<\/p>\n<p>    % \u4e3b\u66f2\u7ebf<br \/>\n    plot(ax, years_interp, current_data, &#039;LineStyle&#039;, line_styles{i}, &#8230;<br \/>\n         &#039;LineWidth&#039;, line_widths(i), &#039;Color&#039;, line_color, &#8230;<br \/>\n         &#039;Marker&#039;, &#039;none&#039;, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\nend<\/p>\n<p>% \u7ed8\u5236\u603b\u5956\u724c\u6570&#xff08;\u9700\u8981\u56fe\u4f8b&#xff09;<br \/>\nfor j &#061; 5:-1:1<br \/>\n    line_width &#061; 3 &#043; (j-1)*1.5;<br \/>\n    alpha_value &#061; 0.15 &#8211; (j-1)*0.03;<\/p>\n<p>    plot(ax, years_interp, total_interp, &#039;LineStyle&#039;, &#039;-&#039;, &#8230;<br \/>\n         &#039;LineWidth&#039;, line_width, &#039;Color&#039;, [line_color, alpha_value], &#8230;<br \/>\n         &#039;Marker&#039;, &#039;none&#039;, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\nend<\/p>\n<p>h_total &#061; plot(ax, years_interp, total_interp, &#039;LineStyle&#039;, &#039;-&#039;, &#8230;<br \/>\n     &#039;LineWidth&#039;, 3, &#039;Color&#039;, line_color, &#039;Marker&#039;, &#039;none&#039;, &#8230;<br \/>\n     &#039;DisplayName&#039;, &#039;Total Medals&#039;);<\/p>\n<p>scatter(ax, years, total_medals, 50, scatter_color, &#039;filled&#039;, &#039;Marker&#039;, &#039;o&#039;, &#8230;<br \/>\n    &#039;MarkerEdgeColor&#039;, line_color, &#039;LineWidth&#039;, 1.5, &#039;HandleVisibility&#039;, &#039;off&#039;);<\/p>\n<p>% \u5750\u6807\u8f74\u8bbe\u7f6e<br \/>\nax.XTick &#061; 1900:20:2020;<br \/>\nax.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax.FontSize &#061; fontSize;<br \/>\nax.XLabel.String &#061; xlabel_txt;<br \/>\nax.XLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.XLabel.FontSize &#061; labelFontSize;<br \/>\nax.XLabel.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax.XLim &#061; [1900, 2024];<br \/>\nax.YLabel.String &#061; ylabel_txt;<br \/>\nax.YLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.YLabel.FontSize &#061; labelFontSize;<br \/>\nax.YLabel.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax.YLim &#061; [0, 30];<br \/>\nax.TickDir &#061; &#039;in&#039;;  % \u523b\u5ea6\u5411\u5185<br \/>\nax.Box &#061; &#039;on&#039;;<\/p>\n<p>% \u521b\u5efa\u56fe\u4f8b\u53e5\u67c4&#xff08;\u53ea\u663e\u793a\u603b\u5956\u724c\u548c\u586b\u5145\u533a\u57df&#xff09;<br \/>\nlegend_handles &#061; [];<\/p>\n<p>% \u586b\u5145\u533a\u57df\u56fe\u4f8b<br \/>\nh_bronze &#061; patch([0,0,0,0], [0,0,0,0], color_bronze, &#8230;<br \/>\n                 &#039;EdgeColor&#039;, &#039;none&#039;, &#039;FaceAlpha&#039;, 0.9, &#8230;<br \/>\n                 &#039;DisplayName&#039;, &#039;Bronze&#039;);<br \/>\nlegend_handles &#061; [legend_handles, h_bronze];<\/p>\n<p>h_silver &#061; patch([0,0,0,0], [0,0,0,0], color_silver, &#8230;<br \/>\n                 &#039;EdgeColor&#039;, &#039;none&#039;, &#039;FaceAlpha&#039;, 0.9, &#8230;<br \/>\n                 &#039;DisplayName&#039;, &#039;Silver&#039;);<br \/>\nlegend_handles &#061; [legend_handles, h_silver];<\/p>\n<p>h_gold &#061; patch([0,0,0,0], [0,0,0,0], color_gold, &#8230;<br \/>\n               &#039;EdgeColor&#039;, &#039;none&#039;, &#039;FaceAlpha&#039;, 0.9, &#8230;<br \/>\n               &#039;DisplayName&#039;, &#039;Gold&#039;);<br \/>\nlegend_handles &#061; [legend_handles, h_gold];<\/p>\n<p>% \u603b\u5956\u724c\u6570\u56fe\u4f8b<br \/>\nlegend_handles &#061; [legend_handles, h_total];<\/p>\n<p>legend(legend_handles, {&#039;Bronze&#039;,&#039;Silver&#039;,&#039;Gold&#039;,&#039;Total Medals&#039;}, &#8230;<br \/>\n       &#039;Location&#039;, &#039;northeast&#039;, &#039;FontSize&#039;, fontSize, &#039;FontName&#039;, &#039;Times New Roman&#039;);<\/p>\n<p>hold(ax, &#039;off&#039;);<\/p>\n<p>fprintf(&#039;\u7ed8\u56fe\u5b8c\u6210\\\\n&#039;); <\/p>\n<p>research gate\u4e0a\u7684\u56fe&#xff0c;\u5f88\u50cf<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"585\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151828-6978d7445804b.png\" width=\"1584\" \/><\/p>\n<\/p>\n<h5 id=\"3D%E5%B8%A6%E9%80%8F%E6%98%8E%E5%BA%A6%E5%88%87%E7%89%87\" style=\"background-color:transparent\">3D\u5e26\u900f\u660e\u5ea6\u5207\u7247<\/h5>\n<p>\u53c2\u8003<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"555\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151828-6978d744c0820.png\" width=\"865\" \/><\/p>\n<p>\u81ea\u5236<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"730\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151828-6978d744f32b7.png\" width=\"1144\" \/><\/p>\n<p>\u4ee3\u7801<\/p>\n<p>clear; clc; close all;<\/p>\n<p>%% \u81ea\u5b9a\u4e49\u533a<br \/>\nYear &#061; [2008, 2012, 2016, 2020, 2024];<br \/>\nCountries &#061; {&#039;JPN&#039;, &#039;AUS&#039;, &#039;GER&#039;, &#039;FRA&#039;, &#039;GBR&#039;, &#039;CHN&#039;, &#039;USA&#039;};<\/p>\n<p>Data &#061; [<br \/>\n    2,  2,  2,  3,  3;<br \/>\n    4,  5,  5,  6,  6;<br \/>\n    6,  7,  7,  8,  8;<br \/>\n    8,  9,  9,  10, 10;<br \/>\n    10, 12, 13, 14, 15;<br \/>\n    12, 15, 18, 21, 24;<br \/>\n    9,  18, 21, 30, 33<br \/>\n];<\/p>\n<p>% \u989c\u8272\u77e9\u9635<br \/>\nColors &#061; [<br \/>\n    0.85 0.94 0.83;<br \/>\n    0.68 0.85 0.65;<br \/>\n    0.52 0.78 0.52;<br \/>\n    0.35 0.70 0.40;<br \/>\n    0.95 0.87 0.65;<br \/>\n    0.88 0.68 0.45;<br \/>\n    0.82 0.52 0.30<br \/>\n];<\/p>\n<p>% \u6807\u7b7e\u8bbe\u7f6e<br \/>\nxlabel_txt &#061; &#039;Year&#039;;<br \/>\nylabel_txt &#061; &#039;Country&#039;;<br \/>\nzlabel_txt &#061; &#039;Value&#039;;<br \/>\nfontSize &#061; 11;<br \/>\nlabelFontSize &#061; 13;<\/p>\n<p>%% \u7edf\u4e00\u6a21\u677f\u6267\u884c\u533a<br \/>\nfigure(&#039;Color&#039;, &#039;w&#039;, &#039;Position&#039;, [100, 100, 1000, 650]);<br \/>\nhold on; box on; grid on;<\/p>\n<p>nCountries &#061; size(Data, 1);<br \/>\nnYears &#061; length(Year);<br \/>\nyPositions &#061; 1:nCountries;<\/p>\n<p>legendHandles &#061; gobjects(nCountries, 1);<\/p>\n<p>for i &#061; 1:nCountries<br \/>\n    zData &#061; Data(i, :);<br \/>\n    yLevel &#061; yPositions(i);<\/p>\n<p>    % \u586b\u5145\u533a\u57df<br \/>\n    xMesh &#061; repmat(Year, 2, 1);<br \/>\n    yMesh &#061; ones(2, nYears) * yLevel;<br \/>\n    zMesh &#061; [zeros(1, nYears); zData];<\/p>\n<p>surf(xMesh, yMesh, zMesh, &#8230;<br \/>\n    &#039;FaceColor&#039;, Colors(i,:), &#8230;<br \/>\n    &#039;EdgeColor&#039;, &#039;none&#039;, &#8230;<br \/>\n    &#039;FaceAlpha&#039;, 0.4);  % \u5728\u8fd9\u91cc\u4fee\u6539\u900f\u660e\u5ea6&#xff0c;0\u662f\u5b8c\u5168\u900f\u660e&#xff0c;1\u662f\u5b8c\u5168\u4e0d\u900f\u660e<\/p>\n<p>    % \u6298\u7ebf<br \/>\n    if i &#061;&#061; 1<br \/>\n        legendHandles(i) &#061; plot3(Year, ones(1, nYears)*yLevel, zData, &#8230;<br \/>\n            &#039;Color&#039;, Colors(i,:)*0.7, &#8230;<br \/>\n            &#039;LineWidth&#039;, 2.5, &#8230;<br \/>\n            &#039;Marker&#039;, &#039;o&#039;, &#8230;<br \/>\n            &#039;MarkerSize&#039;, 5, &#8230;<br \/>\n            &#039;MarkerFaceColor&#039;, Colors(i,:), &#8230;<br \/>\n            &#039;MarkerEdgeColor&#039;, Colors(i,:)*0.5, &#8230;<br \/>\n            &#039;DisplayName&#039;, Countries{i});<br \/>\n    else<br \/>\n        plot3(Year, ones(1, nYears)*yLevel, zData, &#8230;<br \/>\n            &#039;Color&#039;, Colors(i,:)*0.7, &#8230;<br \/>\n            &#039;LineWidth&#039;, 2.5, &#8230;<br \/>\n            &#039;Marker&#039;, &#039;o&#039;, &#8230;<br \/>\n            &#039;MarkerSize&#039;, 5, &#8230;<br \/>\n            &#039;MarkerFaceColor&#039;, Colors(i,:), &#8230;<br \/>\n            &#039;MarkerEdgeColor&#039;, Colors(i,:)*0.5, &#8230;<br \/>\n            &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\n        legendHandles(i) &#061; plot3(NaN, NaN, NaN, &#8230;<br \/>\n            &#039;Color&#039;, Colors(i,:), &#8230;<br \/>\n            &#039;LineWidth&#039;, 2.5, &#8230;<br \/>\n            &#039;Marker&#039;, &#039;o&#039;, &#8230;<br \/>\n            &#039;MarkerSize&#039;, 5, &#8230;<br \/>\n            &#039;MarkerFaceColor&#039;, Colors(i,:), &#8230;<br \/>\n            &#039;MarkerEdgeColor&#039;, Colors(i,:)*0.5, &#8230;<br \/>\n            &#039;DisplayName&#039;, Countries{i});<br \/>\n    end<\/p>\n<p>    % \u6570\u503c\u6807\u7b7e<br \/>\n    for j &#061; 1:nYears<br \/>\n        text(Year(j), yLevel &#8211; 0.2, zData(j), &#8230;<br \/>\n            sprintf(&#039;%d&#039;, zData(j)), &#8230;<br \/>\n            &#039;FontName&#039;, &#039;Times New Roman&#039;, &#8230;<br \/>\n            &#039;FontSize&#039;, 9, &#8230;<br \/>\n            &#039;FontWeight&#039;, &#039;bold&#039;, &#8230;<br \/>\n            &#039;Color&#039;, Colors(i,:)*0.7, &#8230;<br \/>\n            &#039;HorizontalAlignment&#039;, &#039;center&#039;, &#8230;<br \/>\n            &#039;VerticalAlignment&#039;, &#039;top&#039;);<br \/>\n    end<br \/>\nend<\/p>\n<p>% \u5750\u6807\u8f74\u8bbe\u7f6e<br \/>\nxlabel(xlabel_txt, &#039;FontName&#039;, &#039;Times New Roman&#039;, &#039;FontSize&#039;, labelFontSize, &#039;FontWeight&#039;, &#039;bold&#039;);<br \/>\nylabel(ylabel_txt, &#039;FontName&#039;, &#039;Times New Roman&#039;, &#039;FontSize&#039;, labelFontSize, &#039;FontWeight&#039;, &#039;bold&#039;);<br \/>\nzlabel(zlabel_txt, &#039;FontName&#039;, &#039;Times New Roman&#039;, &#039;FontSize&#039;, labelFontSize, &#039;FontWeight&#039;, &#039;bold&#039;);<\/p>\n<p>xlim([min(Year)-0.5, max(Year)&#043;0.5]);<br \/>\nylim([0.5, nCountries &#043; 0.5]);<br \/>\nzlim([0, max(max(Data)) &#043; 10]);<\/p>\n<p>set(gca, &#039;XTick&#039;, Year);<br \/>\nset(gca, &#039;XTickLabel&#039;, cellstr(num2str(Year&#039;)));<br \/>\nset(gca, &#039;YTick&#039;, yPositions, &#039;YTickLabel&#039;, Countries);<br \/>\nset(gca, &#039;FontName&#039;, &#039;Times New Roman&#039;, &#039;FontSize&#039;, fontSize, &#039;FontWeight&#039;, &#039;bold&#039;);<\/p>\n<p>% \u53f3\u4fa7\u603b\u8d21\u732e\u6807\u7b7e<br \/>\nfor i &#061; 1:nCountries<br \/>\n    total &#061; sum(Data(i, :));<br \/>\n    avgZ &#061; mean(Data(i, :));<\/p>\n<p>    text(Year(end) &#043; 0.8, yPositions(i), avgZ, &#8230;<br \/>\n        sprintf(&#039;Total: %d&#039;, total), &#8230;<br \/>\n        &#039;FontName&#039;, &#039;Times New Roman&#039;, &#8230;<br \/>\n        &#039;FontSize&#039;, fontSize, &#8230;<br \/>\n        &#039;FontWeight&#039;, &#039;bold&#039;, &#8230;<br \/>\n        &#039;Color&#039;, Colors(i,:)*0.8, &#8230;<br \/>\n        &#039;HorizontalAlignment&#039;, &#039;left&#039;);<br \/>\nend<\/p>\n<p>% \u89c6\u89d2\u548c\u5149\u7167<br \/>\nview(45, 30);<br \/>\n% light(&#039;Position&#039;, [1 1 1], &#039;Style&#039;, &#039;infinite&#039;);<br \/>\n% lighting gouraud;<br \/>\n% \u52a0\u4e86\u5149\u7167\u80cc\u9762\u4f1a\u5f88\u9ed1<\/p>\n<p>% \u56fe\u4f8b<br \/>\nlegend(legendHandles, &#039;Location&#039;, &#039;northeastoutside&#039;, &#8230;<br \/>\n    &#039;FontName&#039;, &#039;Times New Roman&#039;, &#8230;<br \/>\n    &#039;FontSize&#039;, fontSize, &#8230;<br \/>\n    &#039;FontWeight&#039;, &#039;bold&#039;);<\/p>\n<p>hold off; <\/p>\n<h5 id=\"2D%20%E5%A4%9A%E7%BA%BF%E5%AF%B9%E5%BA%94%E5%90%8C%E5%9B%BE%E4%BE%8B%EF%BC%8C%E9%99%90%E5%AE%9A%E8%BE%B9%E7%95%8C\">2D \u591a\u7ebf\u5bf9\u5e94\u540c\u56fe\u4f8b&#xff0c;\u9650\u5b9a\u8fb9\u754c<\/h5>\n<p>\u53c2\u8003\u56fe 2020-A\u9898-\u9c7c\u7fa4\u8fc1\u5f99 #2001334<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"593\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151829-6978d74557ae4.png\" width=\"1343\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"710\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151829-6978d745a670c.png\" width=\"1085\" \/><\/p>\n<p>\u4ee3\u7801<\/p>\n<p>%% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061; \u81ea\u5b9a\u4e49\u533a&#xff08;\u53ef\u4fee\u6539\u53c2\u6570&#xff09;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<br \/>\n% \u6570\u503c\u53c2\u6570<br \/>\nsim_num &#061; 50;                % \u6a21\u62df\u66f2\u7ebf\u6570\u91cf<br \/>\nyear_start &#061; 2020;           % \u8d77\u59cb\u5e74\u4efd<br \/>\nyear_end &#061; 2070;             % \u7ed3\u675f\u5e74\u4efd<br \/>\nprofit_unit &#061; 1e5;           % \u5229\u6da6\u5355\u4f4d&#xff08;10\u4e07\u7f8e\u5143&#xff09;<br \/>\n% \u989c\u8272\u53c2\u6570&#xff08;RGB\u77e9\u9635&#xff09;<br \/>\ncolor_monte &#061; [0.83,0.83,0.83]; % \u6a21\u62df\u66f2\u7ebf\u989c\u8272<br \/>\ncolor_3sigma &#061; [1,0,0];      % 3\u03c3\u8fb9\u754c\u989c\u8272<br \/>\ncolor_mean &#061; [0,0,0.8];      % \u5747\u503c\u7ebf\u989c\u8272<br \/>\n% \u7ebf\u5bbd\u53c2\u6570<br \/>\nlw_monte &#061; 0.6;              % \u6a21\u62df\u66f2\u7ebf\u7ebf\u5bbd<br \/>\nlw_3sigma &#061; 1.8;             % 3\u03c3\u8fb9\u754c\u7ebf\u5bbd<br \/>\nlw_mean &#061; 2.5;               % \u5747\u503c\u7ebf\u7ebf\u5bbd<br \/>\n% \u6587\u5b57\u53c2\u6570<br \/>\nxlabel_txt &#061; &#039;Year&#039;;         % x\u8f74\u6807\u7b7e<br \/>\nylabel_txt &#061; &#039;Profit (\u00d710^5 USD)&#039;; % y\u8f74\u6807\u7b7e<br \/>\nlegend_monte &#061; &#039;Monte Carlo Scenarios&#039;;<br \/>\nlegend_3sigma &#061; &#039;3\u03c3 Boundary&#039;;<br \/>\nlegend_mean &#061; &#039;Profit Mean (\u03bc)&#039;;<\/p>\n<p>%% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061; \u7edf\u4e00\u6a21\u677f\u6267\u884c\u533a &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<br \/>\n% \u6570\u636e\u51c6\u5907<br \/>\nrng(42);<br \/>\nyear &#061; year_start:year_end;<br \/>\nn_year &#061; length(year);<br \/>\nprofit_sim &#061; zeros(sim_num, n_year);<\/p>\n<p>% \u751f\u6210\u5229\u6da6\u6570\u636e<br \/>\nfor i &#061; 1:sim_num<br \/>\n    growth_idx &#061; year &lt;&#061; 2035;<br \/>\n    profit_growth &#061; (1e5 &#043; 2e4*(year(growth_idx)-2020) &#043; 5e4*randn(1,sum(growth_idx)))\/profit_unit;<br \/>\n    decline_idx &#061; (year&gt;2035)&amp;(year&lt;&#061;2050);<br \/>\n    profit_decline &#061; (6e5 &#8211; 8e3*(year(decline_idx)-2035) &#043; 6e4*randn(1,sum(decline_idx)))\/profit_unit;<br \/>\n    stable_idx &#061; year &gt; 2050;<br \/>\n    profit_stable &#061; (6e5 &#043; 2e4*randn(1,sum(stable_idx)))\/profit_unit;<br \/>\n    profit_sim(i,:) &#061; [profit_growth, profit_decline, profit_stable];<br \/>\n    profit_sim(i,profit_sim(i,:)&lt;0.1) &#061; 0.1;<br \/>\nend<\/p>\n<p>% \u8ba1\u7b973\u03c3\u8fb9\u754c<br \/>\nprofit_mean &#061; mean(profit_sim,1);<br \/>\nprofit_std &#061; std(profit_sim,0,1);<br \/>\nupper_3sigma &#061; profit_mean &#043; 3*profit_std;<br \/>\nlower_3sigma &#061; profit_mean &#8211; 3*profit_std;<br \/>\nlower_3sigma(lower_3sigma&lt;0.1) &#061; 0.1;<\/p>\n<p>% \u7ed8\u56fe<br \/>\nfigure(&#039;Position&#039;,[150,150,1000,600],&#039;Color&#039;,&#039;white&#039;); % \u7a97\u53e3\u80cc\u666f\u8bbe\u4e3a\u767d\u8272<br \/>\nhold on; grid on; grid minor;<br \/>\nax &#061; gca;<br \/>\nax.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax.FontSize &#061; 10;<br \/>\nax.XTick &#061; year_start:5:year_end;<br \/>\nax.Color &#061; &#039;white&#039;; % \u5750\u6807\u8f74\u80cc\u666f\u8bbe\u4e3a\u767d\u8272<\/p>\n<p>% \u8499\u7279\u5361\u6d1b\u66f2\u7ebf<br \/>\nplot(year, profit_sim(1,:), &#039;LineWidth&#039;,lw_monte, &#039;Color&#039;,color_monte, &#039;DisplayName&#039;,legend_monte);<br \/>\nfor i &#061; 2:sim_num<br \/>\n    plot(year, profit_sim(i,:), &#039;LineWidth&#039;,lw_monte, &#039;Color&#039;,color_monte, &#039;HandleVisibility&#039;,&#039;off&#039;);<br \/>\nend<\/p>\n<p>% 3\u03c3\u8fb9\u754c<br \/>\nplot(year, upper_3sigma, &#039;&#8211;&#039;, &#039;LineWidth&#039;,lw_3sigma, &#039;Color&#039;,color_3sigma, &#039;DisplayName&#039;,legend_3sigma);<br \/>\nplot(year, lower_3sigma, &#039;&#8211;&#039;, &#039;LineWidth&#039;,lw_3sigma, &#039;Color&#039;,color_3sigma, &#039;HandleVisibility&#039;,&#039;off&#039;);<\/p>\n<p>% \u5747\u503c\u7ebf<br \/>\nplot(year, profit_mean, &#039;-&#039;, &#039;LineWidth&#039;,lw_mean, &#039;Color&#039;,color_mean, &#039;DisplayName&#039;,legend_mean);<\/p>\n<p>% \u6807\u6ce8\u7f8e\u5316<br \/>\nxlabel(xlabel_txt, &#039;FontSize&#039;,13, &#039;FontWeight&#039;,&#039;bold&#039;, &#039;FontName&#039;,&#039;Times New Roman&#039;);<br \/>\nylabel(ylabel_txt, &#039;FontSize&#039;,13, &#039;FontWeight&#039;,&#039;bold&#039;, &#039;FontName&#039;,&#039;Times New Roman&#039;);<br \/>\nlegend(&#039;Location&#039;,&#039;northeast&#039;, &#039;FontSize&#039;,11);<br \/>\nhold off;<\/p>\n<p>% \u7ed3\u679c\u8f93\u51fa<br \/>\nfprintf(&#039;\u6a21\u62df\u8303\u56f4&#xff1a;%d-%d\u5e74&#xff0c;\u66f2\u7ebf\u6570\u91cf&#xff1a;%d\u6761\\\\n&#039;, year_start, year_end, sim_num);<br \/>\nfprintf(&#039;\u5229\u6da6\u4e0b\u9650\u7ea6\u675f&#xff1a;0.1\u00d710^5 USD\\\\n&#039;); <\/p>\n<h5 id=\"2D%20%E5%8F%8C%E5%9D%90%E6%A0%87%EF%BC%8C%E5%B8%A6%E5%85%89%E6%99%95%E6%95%88%E6%9E%9C%EF%BC%8C%E8%A6%86%E7%9B%96%E6%B8%90%E5%8F%98%E9%A2%9C%E8%89%B2%E5%A1%AB%E5%85%85%E5%8C%BA%E5%9F%9F%EF%BC%8C%E5%B8%A6%E5%9B%BE%E4%BE%8B\" style=\"background-color:transparent\">2D \u53cc\u5750\u6807&#xff0c;\u5e26\u5149\u6655\u6548\u679c&#xff0c;\u8986\u76d6\u6e10\u53d8\u989c\u8272\u586b\u5145\u533a\u57df&#xff0c;\u5e26\u56fe\u4f8b<\/h5>\n<p>\u53c2\u8003\u56fe&#xff1a;\u7f8e\u8d5b-2020-D\u9898-\u54c8\u2f20\u5947\u2f9c\u7403\u961f #2006782<img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"591\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151830-6978d74621cf9.png\" width=\"1431\" \/><\/p>\n<p>\u81ea\u5236\u56fe&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"591\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151830-6978d74686030.png\" width=\"940\" \/><\/p>\n<p>%% \u7ed8\u5236\u53cc\u5750\u6807\u6298\u7ebf\u56fe&#xff0c;\u6709\u586b\u5145\u533a\u57df&#xff0c;\u5e26\u5149\u6655&#xff0c;\u63d2\u503c\u5e73\u6ed1<br \/>\nclear; clc; close all;<\/p>\n<p>% \u81ea\u5b9a\u4e49\u53c2\u6570\u533a<\/p>\n<p>%AI\u63d0\u793a\u8bcd&#xff1a;<br \/>\n%\u6211\u5e0c\u671b\u63d2\u503c\u7ed8\u5236\u5149\u6ed1\u7684\u6709\u5149\u6655\u7684\u66f2\u7ebf&#xff0c;\u4f46\u662f\u53ea\u5728\u771f\u5b9e\u7684\u91c7\u6837\u70b9\u5904\u6807\u8bb0\u3002<br \/>\n%\u5982\u679c\u4f60\u8fd9\u6837\u4fee\u6539&#xff0c;\u76f8\u5f53\u4e8e\u662f\u6240\u6709\u7684\u5dee\u503c\u90fd\u6807\u8bb0&#xff0c;\u6574\u4e2a\u56fe\u90fd\u6df7\u4e71\u4e0d\u582a&#xff0c;<br \/>\n%\u5982\u679c\u4e0d\u8fd9\u6837\u7684\u8bdd&#xff0c;\u7ed8\u5236\u51fa\u6765\u7684\u56fe\u4f8b\u5c31\u6ca1\u6709\u7ebf\u578b\u3002<br \/>\n%\u800c\u5982\u679c\u8ba9\u56fe\u4f8b\u6709\u7ebf\u578b&#xff0c;\u90a3\u53c8\u5fc5\u987b\u5728\u6700\u540e\u753b\u91c7\u6837\u6807\u8bb0\u7684\u65f6\u5019\u7684\u5e26\u4e0a\u7ebf\u578b<br \/>\n%\u8fd9\u6837\u5c31\u4e0d\u662f\u5149\u6ed1\u7684\u66f2\u7ebf\u4e86&#xff0c;\u4f60\u80fd\u660e\u767d\u5e76\u89e3\u51b3\u6211\u7684\u95ee\u9898\u5417<br \/>\n%% \u7ed8\u5236\u53cc\u5750\u6807\u6298\u7ebf\u56fe&#xff0c;\u6709\u586b\u5145\u533a\u57df&#xff0c;\u5e26\u5149\u6655&#xff0c;\u63d2\u503c\u5e73\u6ed1<br \/>\nclear; clc; close all;<\/p>\n<p>% \u81ea\u5b9a\u4e49\u53c2\u6570\u533a<br \/>\n% \u6570\u636e\u70b9&#xff0c;epsilon\u4e3a\u6a2a\u5750\u6807&#xff0c;\u5176\u4f59\u4e3a\u5bf9\u5e94\u6a2a\u5750\u6807\u7684\u7eb5\u5750\u6807\u503c<br \/>\nepsilon_raw &#061; [0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0];<br \/>\nbeta1_raw &#061; [0.32, 0.25, 0.38, 0.42, 0.34, 0.43, 0.41, 0.39, 0.40, 0.31, 0.40];<br \/>\nbeta2_raw &#061; [0.05, 0.20, 0.35, 0.40, 0.62, 0.50, 0.75, 0.78, 0.79, 0.60, 0.80];<br \/>\nbeta3_raw &#061; [0.15, 0.32, 0.42, 0.38, 0.35, 0.28, 0.22, 0.15, 0.32, 0.45, 0.33];<br \/>\nbeta4_raw &#061; [0.10, 0.12, 0.15, 0.18, 0.22, 0.25, 0.27, 0.28, 0.29, 0.20, 0.31];<br \/>\nbeta5_raw &#061; [0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.18, 0.19, 0.20, 0.19, 0.20];<br \/>\nerror_raw &#061; [0.05, 0.07, 0.10, 0.13, 0.17, 0.19, 0.20, 0.21, 0.18, 0.15, 0.13];<\/p>\n<p>% \u63d2\u503c\u53c2\u6570<br \/>\ninterp_points &#061; 100;  % \u63d2\u503c\u70b9\u6570<br \/>\nepsilon &#061; linspace(epsilon_raw(1), epsilon_raw(end), interp_points);<\/p>\n<p>% \u5bf9\u6570\u636e\u8fdb\u884c\u63d2\u503c&#xff08;\u4f7f\u7528pchip\u4fdd\u6301\u5f62\u72b6&#xff09;<br \/>\nbeta1 &#061; interp1(epsilon_raw, beta1_raw, epsilon, &#039;pchip&#039;);<br \/>\nbeta2 &#061; interp1(epsilon_raw, beta2_raw, epsilon, &#039;pchip&#039;);<br \/>\nbeta3 &#061; interp1(epsilon_raw, beta3_raw, epsilon, &#039;pchip&#039;);<br \/>\nbeta4 &#061; interp1(epsilon_raw, beta4_raw, epsilon, &#039;pchip&#039;);<br \/>\nbeta5 &#061; interp1(epsilon_raw, beta5_raw, epsilon, &#039;pchip&#039;);<br \/>\nerror_data &#061; interp1(epsilon_raw, error_raw, epsilon, &#039;pchip&#039;);<\/p>\n<p>% \u989c\u8272\u8bbe\u7f6e<br \/>\ncolor_beta1 &#061; [0, 0.447, 0.741];<br \/>\ncolor_beta2 &#061; [0.466, 0.674, 0.188];<br \/>\ncolor_beta3 &#061; [0.85, 0.325, 0.098];<br \/>\ncolor_beta4 &#061; [0.5, 0.5, 0.5];<br \/>\ncolor_beta5 &#061; [0.929, 0.694, 0.125];<br \/>\ncolor_error &#061; [1, 0, 0];<\/p>\n<p>% \u7ebf\u578b\u8bbe\u7f6e<br \/>\nline_style_beta &#061; {&#039;-&#039;, &#039;&#8211;&#039;, &#039;:&#039;, &#039;-.&#039;, &#039;-&#039;};% \u7ebf\u578b\u53ea\u6709 &#039;-&#039; | &#039;&#8211;&#039; | &#039;:&#039; | &#039;-.&#039; | &#039;none&#039;<br \/>\nmarker_style &#061; {&#039;o&#039;, &#039;s&#039;, &#039;^&#039;, &#039;v&#039;, &#039;d&#039;};<\/p>\n<p>% \u5b57\u4f53\u8bbe\u7f6e<br \/>\nfont_name &#061; &#039;Times New Roman&#039;;<br \/>\nfont_size_label &#061; 13;<br \/>\nfont_weight_label &#061; &#039;bold&#039;;<br \/>\nfont_size_legend &#061; 11;<\/p>\n<p>% \u7edf\u4e00\u6a21\u677f\u6267\u884c\u533a<br \/>\nfigure(&#039;Color&#039;, &#039;white&#039;);<br \/>\nset(gcf, &#039;Position&#039;, [100, 100, 800, 500]);<\/p>\n<p>hold on;<\/p>\n<p>% 1. \u5148\u7ed8\u5236\u586b\u5145\u533a\u57df<br \/>\nyyaxis right;<\/p>\n<p>% \u5bf9\u586b\u5145\u533a\u57df\u4e5f\u9700\u8981\u63d2\u503c\u6570\u636e<br \/>\nerror_interp_fill &#061; interp1(epsilon_raw, error_raw, epsilon, &#039;pchip&#039;);<br \/>\nnum_points &#061; length(epsilon);<\/p>\n<p>% \u521b\u5efa\u6e10\u53d8\u586b\u5145<br \/>\nfor k &#061; 1:num_points-1<br \/>\n    % \u6bcf\u4e2a\u56db\u8fb9\u5f62\u9876\u70b9\u5750\u6807<br \/>\n    x_quad &#061; [epsilon(k), epsilon(k&#043;1), epsilon(k&#043;1), epsilon(k)];<br \/>\n    y_quad &#061; [error_interp_fill(k), error_interp_fill(k&#043;1), 0, 0];<\/p>\n<p>    % \u8ba1\u7b97\u900f\u660e\u5ea6&#xff08;\u4ece\u5de6\u5230\u53f3\u53d8\u6d45&#xff09;<br \/>\n    alpha_left &#061; 2 &#8211; (k-1)\/(num_points-1);<br \/>\n    alpha_right &#061; 2 &#8211; k\/(num_points-1);<\/p>\n<p>    % \u989c\u8272&#xff08;\u7ea2\u8272\u9010\u6e10\u53d8\u6d45&#xff09;<br \/>\n    color_left &#061; [1, 0.5*alpha_left, 0.5*alpha_left];<br \/>\n    color_right &#061; [1, 0.5*alpha_right, 0.5*alpha_right];<\/p>\n<p>    % \u7ed8\u5236\u6bcf\u4e2a\u56db\u8fb9\u5f62<br \/>\n    patch(x_quad, y_quad, &#039;k&#039;, &#8230;<br \/>\n          &#039;FaceColor&#039;, &#039;interp&#039;, &#8230;<br \/>\n          &#039;FaceVertexCData&#039;, [color_left; color_right; color_right; color_left], &#8230;<br \/>\n          &#039;EdgeColor&#039;, &#039;none&#039;, &#8230;<br \/>\n          &#039;FaceAlpha&#039;, 0.15, &#8230;<br \/>\n          &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\nend<\/p>\n<p>% \u53f3\u5750\u6807\u8f74\u8bbe\u7f6e<br \/>\nylim([0, 0.22]);<br \/>\nylabel(&#039;Lowest Error&#039;, &#8230;<br \/>\n       &#039;FontName&#039;, font_name, &#8230;<br \/>\n       &#039;FontSize&#039;, font_size_label, &#8230;<br \/>\n       &#039;FontWeight&#039;, font_weight_label);<br \/>\nset(gca, &#039;YColor&#039;, [0, 0, 0]);<\/p>\n<p>% 2. \u7ed8\u5236\u6027\u80fd\u6307\u6807\u66f2\u7ebf<br \/>\nyyaxis left;<\/p>\n<p>% \u5b58\u50a8\u56fe\u4f8b\u53e5\u67c4<br \/>\nh_line &#061; [];  % \u7ebf\u6761\u7684\u53e5\u67c4&#xff08;\u7528\u4e8e\u7ebf\u578b\u56fe\u4f8b&#xff09;<br \/>\nh_marker &#061; [];  % \u6807\u8bb0\u7684\u53e5\u67c4&#xff08;\u7528\u4e8e\u6807\u8bb0\u56fe\u4f8b&#xff09;<\/p>\n<p>% \u7ed8\u5236\u6027\u80fd\u6307\u6807\u66f2\u7ebf&#xff08;\u5e26\u900f\u660e\u5149\u6655&#xff09;<br \/>\nbeta_data &#061; {beta1, beta2, beta3, beta4, beta5};<br \/>\nbeta_raw_data &#061; {beta1_raw, beta2_raw, beta3_raw, beta4_raw, beta5_raw};<br \/>\nbeta_colors &#061; {color_beta1, color_beta2, color_beta3, color_beta4, color_beta5};<br \/>\nbeta_names &#061; {&#039;\\\\beta_1&#039;, &#039;\\\\beta_2&#039;, &#039;\\\\beta_3&#039;, &#039;\\\\beta_4&#039;, &#039;\\\\beta_5&#039;};<\/p>\n<p>for i &#061; 1:5<br \/>\n    % \u591a\u5c42\u5149\u6655&#xff08;\u4f7f\u7528\u63d2\u503c\u6570\u636e\u7ed8\u5236\u5e73\u6ed1\u5149\u6655&#xff09;<br \/>\n    for j &#061; 6:-1:1<br \/>\n        line_width &#061; 2 &#043; (j-1)*1.2;<br \/>\n        alpha_value &#061; 0.10 &#8211; (j-1)*0.01;<\/p>\n<p>        rgba_color &#061; [beta_colors{i}, alpha_value];<\/p>\n<p>        plot(epsilon, beta_data{i}, &#8230;<br \/>\n             &#039;LineStyle&#039;, &#039;-&#039;, &#8230;<br \/>\n             &#039;Marker&#039;, &#039;none&#039;, &#8230;<br \/>\n             &#039;LineWidth&#039;, line_width, &#8230;<br \/>\n             &#039;Color&#039;, rgba_color, &#8230;<br \/>\n             &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\n    end<\/p>\n<p>    % \u4e3b\u66f2\u7ebf&#xff08;\u63d2\u503c\u6570\u636e\u7ed8\u5236\u5e73\u6ed1\u7ebf&#xff09;<br \/>\n    h_line(i) &#061; plot(epsilon, beta_data{i}, &#8230;<br \/>\n         &#039;LineStyle&#039;, line_style_beta{i}, &#8230;<br \/>\n         &#039;LineWidth&#039;, 2, &#8230;<br \/>\n         &#039;Color&#039;, beta_colors{i}, &#8230;<br \/>\n         &#039;Marker&#039;, &#039;none&#039;, &#8230;<br \/>\n         &#039;HandleVisibility&#039;, &#039;on&#039;, &#8230;<br \/>\n         &#039;DisplayName&#039;, beta_names{i});<\/p>\n<p>    % \u5728\u539f\u59cb\u6570\u636e\u70b9\u4f4d\u7f6e\u7ed8\u5236\u6807\u8bb0&#xff08;\u4f7f\u7528\u65e0\u7ebf\u7684scatter&#xff09;<br \/>\n    h_marker(i) &#061; plot(epsilon_raw, beta_raw_data{i}, &#8230;<br \/>\n         &#039;LineStyle&#039;, &#039;none&#039;, &#8230;  % \u4e0d\u8fde\u63a5\u6807\u8bb0<br \/>\n         &#039;Marker&#039;, marker_style{i}, &#8230;<br \/>\n         &#039;MarkerSize&#039;, 6, &#8230;<br \/>\n         &#039;MarkerFaceColor&#039;, beta_colors{i}, &#8230;<br \/>\n         &#039;MarkerEdgeColor&#039;, beta_colors{i}, &#8230;<br \/>\n         &#039;HandleVisibility&#039;, &#039;off&#039;);  % \u4e0d\u76f4\u63a5\u663e\u793a\u5728\u81ea\u52a8\u56fe\u4f8b\u4e2d<br \/>\nend<\/p>\n<p>% \u5de6\u5750\u6807\u8f74\u8bbe\u7f6e<br \/>\nylim([-0.1, 0.9]);<br \/>\nylabel(&#039;Performance Indicators&#039;, &#8230;<br \/>\n       &#039;FontName&#039;, font_name, &#8230;<br \/>\n       &#039;FontSize&#039;, font_size_label, &#8230;<br \/>\n       &#039;FontWeight&#039;, font_weight_label);<br \/>\nset(gca, &#039;YColor&#039;, [0, 0, 0]);<\/p>\n<p>% 3. \u6700\u540e\u7ed8\u5236\u8bef\u5dee\u66f2\u7ebf<br \/>\nyyaxis right;<\/p>\n<p>% \u7ed8\u5236\u8bef\u5dee\u66f2\u7ebf&#xff08;\u5e26\u900f\u660e\u5149\u6655&#xff09;<br \/>\n% \u591a\u5c42\u5149\u6655&#xff08;\u4f7f\u7528\u63d2\u503c\u6570\u636e&#xff09;<br \/>\nfor j &#061; 5:-1:1<br \/>\n    line_width &#061; 2 &#043; (j-1)*1.2;<br \/>\n    alpha_value &#061; 0.25 &#8211; (j-1)*0.05;<\/p>\n<p>    plot(epsilon, error_data, &#8230;<br \/>\n         &#039;LineStyle&#039;, &#039;-&#039;, &#8230;<br \/>\n         &#039;LineWidth&#039;, line_width, &#8230;<br \/>\n         &#039;Color&#039;, [color_error, alpha_value], &#8230;<br \/>\n         &#039;Marker&#039;, &#039;none&#039;, &#8230;<br \/>\n         &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\nend<\/p>\n<p>% \u4e3b\u8bef\u5dee\u66f2\u7ebf &#8211; \u5148\u7ed8\u5236\u5e73\u6ed1\u7ebf<br \/>\nh_line_error &#061; plot(epsilon, error_data, &#039;&#8211;&#039;, &#8230;<br \/>\n     &#039;LineWidth&#039;, 2, &#8230;<br \/>\n     &#039;Color&#039;, color_error, &#8230;<br \/>\n     &#039;Marker&#039;, &#039;none&#039;, &#8230;<br \/>\n     &#039;HandleVisibility&#039;, &#039;on&#039;, &#8230;<br \/>\n     &#039;DisplayName&#039;, &#039;Lowest Error&#039;);<\/p>\n<p>% \u5728\u539f\u59cb\u6570\u636e\u70b9\u4f4d\u7f6e\u7ed8\u5236\u6807\u8bb0<br \/>\nh_marker_error &#061; plot(epsilon_raw, error_raw, &#8230;<br \/>\n     &#039;LineStyle&#039;, &#039;none&#039;, &#8230;<br \/>\n     &#039;Marker&#039;, &#039;o&#039;, &#8230;<br \/>\n     &#039;MarkerSize&#039;, 4, &#8230;<br \/>\n     &#039;MarkerFaceColor&#039;, color_error, &#8230;<br \/>\n     &#039;MarkerEdgeColor&#039;, color_error, &#8230;<br \/>\n     &#039;HandleVisibility&#039;, &#039;off&#039;);<\/p>\n<p>% \u5171\u540c\u8bbe\u7f6e<br \/>\nxlabel(&#039;\\\\epsilon&#039;, &#8230;<br \/>\n       &#039;FontName&#039;, font_name, &#8230;<br \/>\n       &#039;FontSize&#039;, font_size_label, &#8230;<br \/>\n       &#039;FontWeight&#039;, font_weight_label);<br \/>\nxlim([0, 2]);<br \/>\ngrid on;<\/p>\n<p>% \u8bbe\u7f6e\u7ebf\u6761\u56fe\u4f8b&#xff08;\u53ea\u6709\u7ebf\u578b&#xff0c;\u6ca1\u6709\u6807\u8bb0&#xff09;<br \/>\nlegend(h_line, &#039;Location&#039;, &#039;best&#039;, &#039;FontSize&#039;, font_size_legend, &#8230;<br \/>\n       &#039;FontName&#039;, font_name);<\/p>\n<p>% \u7edf\u4e00\u7f8e\u5316<br \/>\nset(gca, &#039;FontName&#039;, font_name, &#039;FontSize&#039;, 11);<br \/>\nbox on;<br \/>\nhold off;<\/p>\n<p>% \u5728\u7ed8\u5236\u5b8c\u6240\u6709\u56fe\u5f62\u540e&#xff0c;\u6dfb\u52a0\u4ee5\u4e0b\u4ee3\u7801\u6765\u521b\u5efa\u81ea\u5b9a\u4e49\u56fe\u4f8b<br \/>\n% \u521b\u5efa\u81ea\u5b9a\u4e49\u56fe\u4f8b\u6761\u76ee<br \/>\nlegend_labels &#061; {&#039;\\\\beta_1&#039;, &#039;\\\\beta_2&#039;, &#039;\\\\beta_3&#039;, &#039;\\\\beta_4&#039;, &#039;\\\\beta_5&#039;, &#039;Lowest Error&#039;};<br \/>\nlegend_colors &#061; [beta_colors, {color_error}];<br \/>\nlegend_line_styles &#061; [line_style_beta, {&#039;&#8211;&#039;}];<br \/>\nlegend_markers &#061; [marker_style, {&#039;o&#039;}];<\/p>\n<p>% \u521b\u5efa\u65b0\u56fe\u5f62\u6765\u83b7\u53d6\u56fe\u4f8b<br \/>\nfigure(&#039;Position&#039;, [1000, 100, 400, 300], &#039;Color&#039;, &#039;white&#039;, &#039;Visible&#039;, &#039;off&#039;);<br \/>\nhold on;<br \/>\nlegend_handles &#061; [];<br \/>\nfor i &#061; 1:6<br \/>\n    % \u521b\u5efa\u540c\u65f6\u5305\u542b\u7ebf\u578b\u548c\u6807\u8bb0\u7684\u56fe\u5f62\u5bf9\u8c61<br \/>\n    h &#061; plot([0, 1], [i, i], &#8230;<br \/>\n             &#039;LineStyle&#039;, legend_line_styles{i}, &#8230;<br \/>\n             &#039;LineWidth&#039;, 2, &#8230;<br \/>\n             &#039;Color&#039;, legend_colors{i}, &#8230;<br \/>\n             &#039;Marker&#039;, legend_markers{i}, &#8230;<br \/>\n             &#039;MarkerSize&#039;, 6, &#8230;<br \/>\n             &#039;MarkerFaceColor&#039;, legend_colors{i}, &#8230;<br \/>\n             &#039;DisplayName&#039;, legend_labels{i});<br \/>\n    legend_handles &#061; [legend_handles, h];<br \/>\nend<br \/>\nhold off;<br \/>\n%% \u81ea\u5b9a\u4e49\u56fe\u4f8b<br \/>\n%\u5206\u522b\u7ed8\u5236\u5149\u6ed1\u66f2\u7ebf&#xff08;\u5e26\u7ebf\u578b&#xff09;\u548c\u6807\u8bb0\u70b9&#xff08;\u53ea\u5728\u91c7\u6837\u70b9\u5904&#xff09;<br \/>\n%\u521b\u5efa\u4ee3\u7406\u5bf9\u8c61&#xff08;proxy objects&#xff09;\u6765\u6784\u5efa\u81ea\u5b9a\u4e49\u56fe\u4f8b&#xff0c;\u8fd9\u4e9b\u4ee3\u7406\u5bf9\u8c61\u540c\u65f6\u5305\u542b\u7ebf\u578b\u548c\u6807\u8bb0<br \/>\n%\u4f7f\u7528\u4ee3\u7406\u5bf9\u8c61\u521b\u5efa\u6700\u7ec8\u56fe\u4f8b<\/p>\n<p>% \u83b7\u53d6\u8fd9\u4e2a\u56fe\u4f8b<br \/>\ncustom_legend &#061; legend(legend_handles, &#039;Location&#039;, &#039;best&#039;, &#8230;<br \/>\n                       &#039;FontSize&#039;, font_size_legend, &#8230;<br \/>\n                       &#039;FontName&#039;, font_name);<br \/>\ncustom_legend_items &#061; custom_legend.EntryContainer.Children;<\/p>\n<p>% \u5173\u95ed\u4e34\u65f6\u56fe\u5f62<br \/>\nclose(gcf);<\/p>\n<p>% \u56de\u5230\u4e3b\u56fe\u5f62&#xff0c;\u521b\u5efa\u7a7a\u767d\u56fe\u4f8b\u7136\u540e\u6dfb\u52a0\u81ea\u5b9a\u4e49\u6761\u76ee<br \/>\nfigure(1);  % \u56de\u5230\u4e3b\u56fe<br \/>\n% \u9996\u5148\u9690\u85cf\u4e4b\u524d\u7684\u56fe\u4f8b<br \/>\nlegend(&#039;off&#039;);<\/p>\n<p>% \u521b\u5efa\u81ea\u5b9a\u4e49\u56fe\u4f8b<br \/>\n% \u65b9\u6cd51&#xff1a;\u4f7f\u7528annotation\u521b\u5efa&#xff08;\u590d\u6742\u4f46\u7cbe\u786e&#xff09;<br \/>\n% \u65b9\u6cd52&#xff1a;\u7b80\u5316\u65b9\u6848 &#8211; \u521b\u5efa\u4ee3\u7406\u5bf9\u8c61<br \/>\n% \u521b\u5efa\u4ee3\u7406\u56fe\u5f62\u5bf9\u8c61&#xff08;\u4e0d\u5728\u56fe\u4e0a\u663e\u793a&#xff09;<br \/>\nhold on;<br \/>\nproxy_handles &#061; [];<br \/>\nfor i &#061; 1:6<br \/>\n    % \u521b\u5efa\u4e0d\u5728\u56fe\u4e0a\u663e\u793a\u7684\u4ee3\u7406\u5bf9\u8c61<br \/>\n    proxy_handles(i) &#061; plot(NaN, NaN, &#8230;<br \/>\n                           &#039;LineStyle&#039;, legend_line_styles{i}, &#8230;<br \/>\n                           &#039;LineWidth&#039;, 2, &#8230;<br \/>\n                           &#039;Color&#039;, legend_colors{i}, &#8230;<br \/>\n                           &#039;Marker&#039;, legend_markers{i}, &#8230;<br \/>\n                           &#039;MarkerSize&#039;, 6, &#8230;<br \/>\n                           &#039;MarkerFaceColor&#039;, legend_colors{i}, &#8230;<br \/>\n                           &#039;DisplayName&#039;, legend_labels{i});<br \/>\nend<\/p>\n<p>% \u521b\u5efa\u56fe\u4f8b<br \/>\nlegend(proxy_handles, legend_labels, &#039;Location&#039;, &#039;best&#039;, &#8230;<br \/>\n       &#039;FontSize&#039;, font_size_legend, &#039;FontName&#039;, font_name); <\/p>\n<h4 id=\"%E6%9F%B1%E7%8A%B6%E5%9B%BE%E2%80%94%E2%80%94\">\u67f1\u72b6\u56fe\u2014\u2014<\/h4>\n<h5 id=\"3D%20%E4%B8%8D%E5%90%8C%E9%A2%9C%E8%89%B2%20%E6%9F%B1%E7%8A%B6%E5%9B%BE\" style=\"background-color:transparent\">3D \u4e0d\u540c\u989c\u8272 \u67f1\u72b6\u56fe<\/h5>\n<p>\u53c2\u8003&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"803\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151830-6978d746bbb81.png\" width=\"1270\" \/><\/p>\n<p>\u81ea\u5236&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"590\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151831-6978d7478bc4a.png\" width=\"1839\" \/><\/p>\n<p>\u4ee3\u7801&#xff1a;<\/p>\n<p>clear; clc; close all;<\/p>\n<p>%% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061; \u81ea\u5b9a\u4e49\u533a&#xff08;\u53ef\u4fee\u6539\u53c2\u6570&#xff09;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<br \/>\n% 1. \u573a\u666f&#xff1a;\u65e0\u4eba\u673a\u98ce\u901f\u4e0e\u98ce\u5411\u5bf9\u4fe1\u53f7\u5e72\u6270\u7684\u5f71\u54cd&#xff08;\u5355\u4f4d&#xff1a;%&#xff09;<br \/>\nvelocity &#061; [1,1.5,2,2.5,3,3.5];       % \u98ce\u901f&#xff08;m\/s&#xff09;<br \/>\nangle &#061; [0,45,90,135,180,225,270];    % \u98ce\u5411\u89d2&#xff08;\u00b0&#xff09;<br \/>\n% 3\u7ec4\u573a\u666f\u6570\u636e&#xff08;\u884c\u6570&#061;\u98ce\u901f\u6570&#xff0c;\u5217\u6570&#061;\u98ce\u5411\u89d2\u6570&#xff09;<br \/>\ndata1 &#061; [<br \/>\n    0.2 0.5 1.2 0.8 0.3 0.1 0.0;<br \/>\n    0.8 1.5 3.2 2.5 1.0 0.4 0.2;<br \/>\n    1.5 3.8 6.5 5.2 2.2 0.9 0.5;<br \/>\n    1.2 4.2 7.8 8.5 4.0 1.8 0.8;<br \/>\n    0.6 2.5 4.8 5.2 3.5 2.0 1.0;<br \/>\n    0.3 1.2 2.5 2.8 2.0 1.5 0.8;<br \/>\n];<br \/>\ndata2 &#061; [<br \/>\n    0.5 1.2 2.5 1.8 0.8 0.4 0.2;<br \/>\n    1.8 3.5 7.2 6.5 3.0 1.4 0.8;<br \/>\n    3.5 8.8 15.5 14.2 7.2 3.9 1.5;<br \/>\n    4.2 10.2 18.8 19.5 10.0 5.8 2.8;<br \/>\n    2.6 6.5 11.8 12.2 8.5 5.0 3.0;<br \/>\n    1.3 3.2 6.5 7.8 5.0 3.5 2.8;<br \/>\n];<br \/>\ndata3 &#061; [<br \/>\n    0.3 0.8 1.8 1.2 0.5 0.2 0.1;<br \/>\n    1.2 2.5 5.2 4.5 2.0 0.9 0.4;<br \/>\n    2.5 6.8 10.5 9.2 4.2 1.9 0.8;<br \/>\n    3.2 8.2 14.8 15.5 7.0 3.8 1.8;<br \/>\n    1.6 4.5 8.8 9.2 6.5 3.0 2.0;<br \/>\n    0.8 2.2 4.5 5.8 4.0 2.5 1.8;<br \/>\n];<\/p>\n<p>% 2. \u989c\u8272\u53c2\u6570<br \/>\ncolor1 &#061; [0.2 0.5 0.8];      % \u573a\u666f1&#xff1a;\u6d45\u84dd\u8272<br \/>\ncolor2 &#061; [0.1 0.7 0.6];      % \u573a\u666f2&#xff1a;\u9752\u7eff\u8272<br \/>\ncolor3 &#061; [0.8 0.4 0.2];      % \u573a\u666f3&#xff1a;\u6a59\u7ea2\u8272<\/p>\n<p>% 3. \u9ad8\u7ea7\u7f51\u683c\u548c\u80cc\u666f\u989c\u8272\u8bbe\u7f6e<br \/>\ngrid_color &#061; [0.4, 0.4, 0.4];     % \u7f51\u683c\u7ebf\u989c\u8272&#xff1a;\u6df1\u7070\u8272&#xff0c;\u66f4\u4e13\u4e1a<br \/>\nbg_color &#061; [0.98, 0.98, 0.98];    % \u80cc\u666f\u989c\u8272&#xff1a;\u6de1\u7070\u8272&#xff0c;\u66f4\u9ad8\u7ea7<br \/>\naxis_color &#061; [0.3, 0.3, 0.3];     % \u5750\u6807\u8f74\u989c\u8272&#xff1a;\u6df1\u7070\u8272<br \/>\ngrid_alpha &#061; 0.5;                  % \u7f51\u683c\u7ebf\u900f\u660e\u5ea6<\/p>\n<p>% 4. \u5750\u6807\u8f74\u6587\u5b57<br \/>\nxlabel_txt &#061; &#039;velocity(m\/s)&#039;;<br \/>\nylabel_txt &#061; &#039;angle(\\\\circ)&#039;;<br \/>\nzlabel_txt &#061; &#039;influence(%)&#039;;<br \/>\nfontSize &#061; 11;<br \/>\nlabelFontSize &#061; 13;<\/p>\n<p>%% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061; \u7edf\u4e00\u6a21\u677f\u6267\u884c\u533a &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<br \/>\n% \u521b\u5efa3\u5b50\u56fe\u5e03\u5c40<br \/>\nfigure(&#039;Position&#039;,[150,150,1500,500],&#039;Color&#039;,&#039;white&#039;);<br \/>\ntiledlayout(1,3,&#039;TileSpacing&#039;,&#039;compact&#039;,&#039;Padding&#039;,&#039;compact&#039;);<\/p>\n<p>% \u5b50\u56fe1&#xff1a;\u4f4e\u5e72\u6270\u573a\u666f<br \/>\nnexttile;<br \/>\nh1 &#061; bar3(data1&#039;);  % \u4ec5\u4f20\u5165\u6570\u636e\u77e9\u9635&#xff0c;\u4fee\u6b63\u53c2\u6570\u8fc7\u591a\u95ee\u9898<br \/>\n% \u8bbe\u7f6e\u67f1\u5b50\u6837\u5f0f<br \/>\nset(h1,&#039;EdgeColor&#039;,&#039;cyan&#039;,&#039;FaceColor&#039;,color1);<br \/>\nax &#061; gca;<\/p>\n<p>% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061; \u8bbe\u7f6e\u9ad8\u7ea7\u7f51\u683c\u548c\u80cc\u666f &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<br \/>\nax.Color &#061; bg_color;               % \u8bbe\u7f6e\u80cc\u666f\u989c\u8272<br \/>\nax.GridColor &#061; grid_color;         % \u8bbe\u7f6e\u7f51\u683c\u7ebf\u989c\u8272<br \/>\nax.GridAlpha &#061; grid_alpha;         % \u8bbe\u7f6e\u7f51\u683c\u7ebf\u900f\u660e\u5ea6<br \/>\nax.XColor &#061; axis_color;            % \u8bbe\u7f6eX\u8f74\u989c\u8272<br \/>\nax.YColor &#061; axis_color;            % \u8bbe\u7f6eY\u8f74\u989c\u8272<br \/>\nax.ZColor &#061; axis_color;            % \u8bbe\u7f6eZ\u8f74\u989c\u8272<br \/>\nax.GridLineStyle &#061; &#039;-&#039;;           % \u7f51\u683c\u7ebf\u6837\u5f0f\u4e3a\u5b9e\u7ebf<br \/>\nax.MinorGridLineStyle &#061; &#039;none&#039;;   % \u65e0\u6b21\u8981\u7f51\u683c\u7ebf<br \/>\n% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<\/p>\n<p>ax.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax.FontSize &#061; fontSize;<br \/>\nax.XLabel.String &#061; xlabel_txt;<br \/>\nax.XLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.XLabel.FontSize &#061; labelFontSize;<br \/>\nax.YLabel.String &#061; ylabel_txt;<br \/>\nax.YLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.YLabel.FontSize &#061; labelFontSize;<br \/>\nax.ZLabel.String &#061; zlabel_txt;<br \/>\nax.ZLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.ZLabel.FontSize &#061; labelFontSize;<br \/>\nax.TickDir &#061; &#039;out&#039;;<br \/>\n% \u81ea\u5b9a\u4e49X\/Y\u8f74\u523b\u5ea6\u6807\u7b7e<br \/>\nax.XTickLabel &#061; velocity;<br \/>\nax.YTickLabel &#061; angle;<br \/>\nview(130,30);<br \/>\nzlim([0,10]);<\/p>\n<p>% \u5b50\u56fe2&#xff1a;\u4e2d\u5e72\u6270\u573a\u666f<br \/>\nnexttile;<br \/>\nh2 &#061; bar3(data2&#039;);<br \/>\nset(h2,&#039;EdgeColor&#039;,&#039;g&#039;,&#039;FaceColor&#039;,color2);<br \/>\nax &#061; gca;<\/p>\n<p>% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061; \u8bbe\u7f6e\u9ad8\u7ea7\u7f51\u683c\u548c\u80cc\u666f &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<br \/>\nax.Color &#061; bg_color;               % \u8bbe\u7f6e\u80cc\u666f\u989c\u8272<br \/>\nax.GridColor &#061; grid_color;         % \u8bbe\u7f6e\u7f51\u683c\u7ebf\u989c\u8272<br \/>\nax.GridAlpha &#061; grid_alpha;         % \u8bbe\u7f6e\u7f51\u683c\u7ebf\u900f\u660e\u5ea6<br \/>\nax.XColor &#061; axis_color;            % \u8bbe\u7f6eX\u8f74\u989c\u8272<br \/>\nax.YColor &#061; axis_color;            % \u8bbe\u7f6eY\u8f74\u989c\u8272<br \/>\nax.ZColor &#061; axis_color;            % \u8bbe\u7f6eZ\u8f74\u989c\u8272<br \/>\nax.GridLineStyle &#061; &#039;-&#039;;           % \u7f51\u683c\u7ebf\u6837\u5f0f\u4e3a\u5b9e\u7ebf<br \/>\nax.MinorGridLineStyle &#061; &#039;none&#039;;   % \u65e0\u6b21\u8981\u7f51\u683c\u7ebf<br \/>\n% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<\/p>\n<p>ax.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax.FontSize &#061; fontSize;<br \/>\nax.XLabel.String &#061; xlabel_txt;<br \/>\nax.XLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.XLabel.FontSize &#061; labelFontSize;<br \/>\nax.YLabel.String &#061; ylabel_txt;<br \/>\nax.YLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.YLabel.FontSize &#061; labelFontSize;<br \/>\nax.ZLabel.String &#061; zlabel_txt;<br \/>\nax.ZLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.ZLabel.FontSize &#061; labelFontSize;<br \/>\nax.TickDir &#061; &#039;out&#039;;<br \/>\nax.XTickLabel &#061; velocity;<br \/>\nax.YTickLabel &#061; angle;<br \/>\nview(130,30);<br \/>\nzlim([0,25]);<\/p>\n<p>% \u5b50\u56fe3&#xff1a;\u9ad8\u5e72\u6270\u573a\u666f<br \/>\nnexttile;<br \/>\nh3 &#061; bar3(data3&#039;);<br \/>\nset(h3,&#039;EdgeColor&#039;,&#039;yellow&#039;,&#039;FaceColor&#039;,color3);<br \/>\nax &#061; gca;<\/p>\n<p>% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061; \u8bbe\u7f6e\u9ad8\u7ea7\u7f51\u683c\u548c\u80cc\u666f &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<br \/>\nax.Color &#061; bg_color;               % \u8bbe\u7f6e\u80cc\u666f\u989c\u8272<br \/>\nax.GridColor &#061; grid_color;         % \u8bbe\u7f6e\u7f51\u683c\u7ebf\u989c\u8272<br \/>\nax.GridAlpha &#061; grid_alpha;         % \u8bbe\u7f6e\u7f51\u683c\u7ebf\u900f\u660e\u5ea6<br \/>\nax.XColor &#061; axis_color;            % \u8bbe\u7f6eX\u8f74\u989c\u8272<br \/>\nax.YColor &#061; axis_color;            % \u8bbe\u7f6eY\u8f74\u989c\u8272<br \/>\nax.ZColor &#061; axis_color;            % \u8bbe\u7f6eZ\u8f74\u989c\u8272<br \/>\nax.GridLineStyle &#061; &#039;-&#039;;           % \u7f51\u683c\u7ebf\u6837\u5f0f\u4e3a\u5b9e\u7ebf<br \/>\nax.MinorGridLineStyle &#061; &#039;none&#039;;   % \u65e0\u6b21\u8981\u7f51\u683c\u7ebf<br \/>\n% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<\/p>\n<p>ax.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax.FontSize &#061; fontSize;<br \/>\nax.XLabel.String &#061; xlabel_txt;<br \/>\nax.XLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.XLabel.FontSize &#061; labelFontSize;<br \/>\nax.YLabel.String &#061; ylabel_txt;<br \/>\nax.YLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.YLabel.FontSize &#061; labelFontSize;<br \/>\nax.ZLabel.String &#061; zlabel_txt;<br \/>\nax.ZLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.ZLabel.FontSize &#061; labelFontSize;<br \/>\nax.TickDir &#061; &#039;out&#039;;<br \/>\nax.XTickLabel &#061; velocity;<br \/>\nax.YTickLabel &#061; angle;<br \/>\nview(130,30);<br \/>\nzlim([0,17.5]);<\/p>\n<p>% \u7ed3\u679c\u8f93\u51fa<br \/>\nfprintf(&#039;\u7ed8\u56fe\u5b8c\u6210&#xff1a;3\u573a\u666f\u65e0\u4eba\u673a\u98ce\u901f-\u98ce\u5411\u5e72\u62703D\u67f1\u72b6\u56fe\\\\n&#039;); <\/p>\n<h5 id=\"2D%20%E5%8F%8C%E5%9D%90%E6%A0%87%20%E6%9F%B1%E7%8A%B6%E5%9B%BE%E6%8A%98%E7%BA%BF%E5%9B%BE%E6%9D%82%E4%BA%A4\" style=\"background-color:transparent\">2D \u53cc\u5750\u6807 \u67f1\u72b6\u56fe\u6298\u7ebf\u56fe\u6742\u4ea4<\/h5>\n<p>\u53c2\u8003&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"493\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151832-6978d748300d8.png\" width=\"1330\" \/><\/p>\n<p>\u81ea\u5236&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"255\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151832-6978d74872937.png\" width=\"422\" \/><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"192\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151832-6978d748d3c02.png\" width=\"178\" \/><\/p>\n<p>\u4ee3\u7801<\/p>\n<p>clear; clc; close all;<\/p>\n<p>%% \u81ea\u5b9a\u4e49\u533a<br \/>\ncountries &#061; {&#039;FRA&#039;,&#039;KOR&#039;,&#039;CHN&#039;,&#039;SUN&#039;,&#039;AUS&#039;,&#039;JPN&#039;,&#039;GRC&#039;,&#039;BRA&#039;,&#039;USA&#039;};<br \/>\nn &#061; length(countries);<br \/>\nscore_ratio &#061; [1.93, 1.73, 1.58, 1.56, 1.41, 1.41, 1.23, 1.11, 0.93];<br \/>\nscores &#061; [122, 67, 218, 424, 115, 126, 34, 39, 401];<\/p>\n<p>bar_colors &#061; [<br \/>\n    0.2  0.4  0.9;<br \/>\n    0.3  0.5  0.92;<br \/>\n    0.4  0.6  0.94;<br \/>\n    0.5  0.7  0.96;<br \/>\n    0.6  0.8  0.98;<br \/>\n    0.7  0.85 0.99;<br \/>\n    0.8  0.9  1.0;<br \/>\n    0.85 0.93 1.0;<br \/>\n    0.9  0.96 1.0;<br \/>\n];<\/p>\n<p>line_color &#061; [1.0 0.8 0.0];<br \/>\nmarker_color &#061; [1.0 0.8 0.0];<\/p>\n<p>interp_points &#061; 100;<br \/>\nx_raw &#061; 1:n;<br \/>\nx_interp &#061; linspace(1, n, interp_points);<br \/>\nscores_interp &#061; interp1(x_raw, scores, x_interp, &#039;pchip&#039;);<\/p>\n<p>xlabel_txt &#061; &#039;Country&#039;;<br \/>\nylabel_left_txt &#061; &#039;Olympic score ratio&#039;;<br \/>\nylabel_right_txt &#061; &#039;scores&#039;;<br \/>\nlegend_left_txt &#061; {&#039;Olympic score ratio&#039;};<br \/>\nlegend_right_txt &#061; {&#039;scores&#039;};<br \/>\nfontSize &#061; 11;<br \/>\nlabelFontSize &#061; 13;<\/p>\n<p>%% \u7edf\u4e00\u6a21\u677f\u6267\u884c\u533a<br \/>\nfigure(&#039;Position&#039;,[150,150,1000,600],&#039;Color&#039;,&#039;white&#039;);<\/p>\n<p>ax1 &#061; gca;<br \/>\nhold(ax1, &#039;on&#039;);<br \/>\nh_bar &#061; bar(ax1, score_ratio, &#039;FaceColor&#039;, &#039;flat&#039;, &#039;EdgeColor&#039;, &#039;none&#039;);<br \/>\nh_bar.CData &#061; bar_colors;<br \/>\nh_bar.DisplayName &#061; legend_left_txt{1};<\/p>\n<p>for i &#061; 1:n<br \/>\n    text(ax1, i, score_ratio(i), sprintf(&#039;%.2f&#039;, score_ratio(i)), &#8230;<br \/>\n         &#039;FontName&#039;,&#039;Times New Roman&#039;, &#039;FontSize&#039;,10, &#8230;<br \/>\n         &#039;VerticalAlignment&#039;,&#039;bottom&#039;, &#039;HorizontalAlignment&#039;,&#039;center&#039;, &#8230;<br \/>\n         &#039;FontWeight&#039;,&#039;bold&#039;, &#039;Color&#039;,&#039;k&#039;, &#8230;<br \/>\n         &#039;BackgroundColor&#039;, [1 1 1 0.4], &#039;Margin&#039;, 1, &#8230;<br \/>\n         &#039;EdgeColor&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 0.5);<br \/>\nend<\/p>\n<p>ax2 &#061; axes(&#039;Position&#039;,ax1.Position,&#039;YAxisLocation&#039;,&#039;right&#039;,&#039;Color&#039;,&#039;none&#039;,&#039;XColor&#039;,&#039;none&#039;,&#039;YColor&#039;,&#039;k&#039;);<br \/>\nhold(ax2, &#039;on&#039;);<\/p>\n<p>for j &#061; 8:-1:1<br \/>\n    line_width &#061; 3 &#043; (j-1)*1.5;<br \/>\n    alpha_value &#061; 0.12 &#8211; (j-1)*0.015;<\/p>\n<p>    plot(ax2, x_interp, scores_interp, &#039;LineStyle&#039;, &#039;-&#039;, &#8230;<br \/>\n         &#039;LineWidth&#039;, line_width, &#039;Color&#039;, [line_color, alpha_value], &#8230;<br \/>\n         &#039;Marker&#039;, &#039;none&#039;, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\nend<\/p>\n<p>h_line &#061; plot(ax2, x_interp, scores_interp, &#039;LineStyle&#039;, &#039;-&#039;, &#8230;<br \/>\n     &#039;LineWidth&#039;, 3, &#039;Color&#039;, line_color, &#039;Marker&#039;, &#039;none&#039;, &#8230;<br \/>\n     &#039;DisplayName&#039;, legend_right_txt{1});<\/p>\n<p>plot(ax2, x_raw, scores, &#039;LineStyle&#039;, &#039;none&#039;, &#039;Marker&#039;, &#039;o&#039;, &#8230;<br \/>\n     &#039;MarkerSize&#039;, 7, &#039;MarkerFaceColor&#039;, marker_color, &#8230;<br \/>\n     &#039;MarkerEdgeColor&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1, &#039;HandleVisibility&#039;, &#039;off&#039;);<\/p>\n<p>for i &#061; 1:n<br \/>\n    text(ax2, x_raw(i), scores(i), num2str(scores(i)), &#8230;<br \/>\n         &#039;FontName&#039;,&#039;Times New Roman&#039;, &#039;FontSize&#039;,10, &#8230;<br \/>\n         &#039;VerticalAlignment&#039;,&#039;bottom&#039;, &#039;HorizontalAlignment&#039;,&#039;center&#039;, &#8230;<br \/>\n         &#039;FontWeight&#039;,&#039;bold&#039;, &#039;Color&#039;,&#039;k&#039;, &#8230;<br \/>\n         &#039;BackgroundColor&#039;, [1 1 1 0.4], &#039;Margin&#039;, 1, &#8230;<br \/>\n         &#039;EdgeColor&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 0.5);<br \/>\nend<\/p>\n<p>ax1.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax1.FontSize &#061; fontSize;<br \/>\nax1.XTick &#061; 1:n;<br \/>\nax1.XTickLabel &#061; countries;<br \/>\nax1.XLabel.String &#061; xlabel_txt;<br \/>\nax1.XLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax1.XLabel.FontSize &#061; labelFontSize;<br \/>\nax1.XLabel.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax1.YLabel.String &#061; ylabel_left_txt;<br \/>\nax1.YLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax1.YLabel.FontSize &#061; labelFontSize;<br \/>\nax1.YLabel.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax1.YLim &#061; [0, 2.1];<br \/>\nax1.TickDir &#061; &#039;in&#039;;%\u8fd9\u4e2a\u5730\u65b9\u5982\u679c\u662fout\u5c31\u4f1a\u548c\u53f3\u8fb9\u7684\u51b2\u7a81<br \/>\nax1.Box &#061; &#039;on&#039;;<br \/>\nax1.YAxisLocation &#061; &#039;left&#039;;<\/p>\n<p>ax2.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax2.FontSize &#061; fontSize;<br \/>\nax2.XTick &#061; [];<br \/>\nax2.YLabel.String &#061; ylabel_right_txt;<br \/>\nax2.YLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax2.YLabel.FontSize &#061; labelFontSize;<br \/>\nax2.YLabel.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax2.YLim &#061; [0, 450];<br \/>\nax2.TickDir &#061; &#039;out&#039;;<br \/>\nlinkaxes([ax1,ax2],&#039;x&#039;);<\/p>\n<p>proxy_handle &#061; plot(ax2, NaN, NaN, &#039;LineStyle&#039;, &#039;-&#039;, &#8230;<br \/>\n                   &#039;LineWidth&#039;, 3, &#039;Color&#039;, line_color, &#8230;<br \/>\n                   &#039;Marker&#039;, &#039;o&#039;, &#039;MarkerSize&#039;, 7, &#8230;<br \/>\n                   &#039;MarkerFaceColor&#039;, marker_color, &#8230;<br \/>\n                   &#039;MarkerEdgeColor&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1, &#8230;<br \/>\n                   &#039;DisplayName&#039;, legend_right_txt{1});<\/p>\n<p>legend(ax1, h_bar, legend_left_txt, &#039;Location&#039;,&#039;northwest&#039;,&#8230;<br \/>\n       &#039;FontSize&#039;,10,&#039;FontName&#039;,&#039;Times New Roman&#039;);<br \/>\nlegend(ax2, proxy_handle, legend_right_txt, &#039;Location&#039;,&#039;northeast&#039;,&#8230;<br \/>\n       &#039;FontSize&#039;,10,&#039;FontName&#039;,&#039;Times New Roman&#039;);<\/p>\n<p>ax1.Legend.AutoUpdate &#061; &#039;off&#039;;<br \/>\nax2.Legend.AutoUpdate &#061; &#039;off&#039;;<\/p>\n<p>hold(ax1, &#039;off&#039;);<br \/>\nhold(ax2, &#039;off&#039;);<\/p>\n<p>fprintf(&#039;\u7ed8\u56fe\u5b8c\u6210\\\\n&#039;); <\/p>\n<p>\u53f3\u8fb9\u56fe\u4f8b&#xff0c;matlab\u4e0d\u597d\u753b\u8fd9\u79cd&#xff0c;\u51d1\u5408\u4e00\u4e0b<\/p>\n<p>clear; clc; close all;<br \/>\n% \u521b\u65b0\u56fe\u4f8b<br \/>\n%% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061; \u81ea\u5b9a\u4e49\u533a&#xff08;\u53ef\u4fee\u6539\u53c2\u6570&#xff09;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<br \/>\n% 1. \u73af\u5f62\u53c2\u6570<br \/>\nradius &#061; [1.0, 0.8, 0.6];      % \u4e09\u5c42\u5706\u73af\u534a\u5f84<br \/>\nangle &#061; [210, 240, 270];       % \u6bcf\u5c42\u5706\u73af\u7684\u5706\u5f27\u89d2\u5ea6&#xff08;0-360&#xff09;<br \/>\ncolors &#061; [<br \/>\n    0.8 0.9 1.0;   % \u6700\u5916\u5c42&#xff1a;\u6d45\u84dd<br \/>\n    0.4 0.7 0.9;   % \u4e2d\u95f4\u5c42&#xff1a;\u4e2d\u84dd<br \/>\n    0.1 0.4 0.8;   % \u6700\u5185\u5c42&#xff1a;\u6df1\u84dd<br \/>\n];<br \/>\n% 2. \u56fe\u4f8b\u53c2\u6570<br \/>\nlegend_txt &#061; {&#039;growth rate&gt;1&#039;,&#039;growth rate&gt;1.2&#039;,&#039;growth rate&gt;1.5&#039;};<br \/>\nfontSize &#061; 11;<br \/>\nlabelFontSize &#061; 13;<\/p>\n<p>%% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061; \u7edf\u4e00\u6a21\u677f\u6267\u884c\u533a &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<br \/>\nfigure(&#039;Position&#039;,[150,150,600,600],&#039;Color&#039;,&#039;white&#039;);<br \/>\nhold on;<\/p>\n<p>% \u7ed8\u5236\u4e09\u5c42\u73af\u5f62<br \/>\nfor i &#061; 1:length(radius)<br \/>\n    theta &#061; linspace(-90, angle(i)-90, 100) * pi\/180;<br \/>\n    x &#061; radius(i) * cos(theta);<br \/>\n    y &#061; radius(i) * sin(theta);<br \/>\n    % \u7ed8\u5236\u5916\u5c42\u5706\u5f27<br \/>\n    plot(x, y, &#039;Color&#039;,colors(i,:), &#039;LineWidth&#039;,25);<br \/>\n    % \u7ed8\u5236\u5185\u5c42\u7a7a\u767d\u5706\u5f27<br \/>\n    theta_inner &#061; linspace(angle(i)-90, 270, 100) * pi\/180;<br \/>\n    x_inner &#061; (radius(i)-0.18) * cos(theta_inner);<br \/>\n    y_inner &#061; (radius(i)-0.18) * sin(theta_inner);<br \/>\n    plot(x_inner, y_inner, &#039;Color&#039;,&#039;white&#039;, &#039;LineWidth&#039;,25);<br \/>\nend<\/p>\n<p>% \u5750\u6807\u8f74\u8bbe\u7f6e<br \/>\nax &#061; gca;<br \/>\nax.XLim &#061; [-1.2, 1.2];<br \/>\nax.YLim &#061; [-1.2, 1.2];<br \/>\nax.XTick &#061; [];<br \/>\nax.YTick &#061; [];<br \/>\nax.Box &#061; &#039;off&#039;;<br \/>\nax.Color &#061; &#039;white&#039;;<br \/>\naxis equal;<\/p>\n<p>% \u56fe\u4f8b\u8bbe\u7f6e<br \/>\nlegend(legend_txt, &#039;Location&#039;,&#039;east&#039;,&#039;FontSize&#039;,fontSize,&#039;FontName&#039;,&#039;Times New Roman&#039;);<\/p>\n<p>hold off;<\/p>\n<p>% \u7ed3\u679c\u8f93\u51fa<br \/>\nfprintf(&#039;\u7ed8\u56fe\u5b8c\u6210&#xff1a;\u4e09\u5c42\u73af\u5f62\u589e\u957f\u901f\u7387\u56fe\\\\n&#039;); <\/p>\n<h4 id=\"%E5%85%B6%E4%BB%96%E7%BB%9F%E8%AE%A1%E5%88%86%E5%B8%83%E5%9B%BE%E2%80%94%E2%80%94\" style=\"background-color:transparent\">\u5176\u4ed6\u7edf\u8ba1\u5206\u5e03\u56fe\u2014\u2014<\/h4>\n<h5 id=\"%E4%BA%91%E9%9B%A8%E5%9B%BE%E5%92%8C%E7%AE%B1%E5%9E%8B%E5%9B%BE%E7%9A%84%E6%9D%82%E4%BA%A4%E5%9B%BE%EF%BC%9F\" style=\"background-color:transparent\">\u4e91\u96e8\u56fe\u548c\u7bb1\u578b\u56fe\u7684\u6742\u4ea4\u56fe&#xff1f;<\/h5>\n<p>\u53c2\u8003\u56fe 2025C 2500759<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"908\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151832-6978d748f4212.png\" width=\"1617\" \/><\/p>\n<p>AI\u4e86\u4e00\u4e0b&#xff0c;\u4e91\u96e8\u56fe\u5b9e\u9645\u4e0a\u662f\u5c0f\u63d0\u7434\u56fe&#xff08;\u4e91&#xff09;&#043;\u6563\u70b9\u56fe&#xff08;\u96e8&#xff09;&#xff0c;\u6240\u4ee5\u8fd9\u4e2a\u4e0a\u9762\u7684\u8bf4\u6cd5\u5c31\u50cf\u662f\u7c73\u996d-\u86cb\u7092\u996d \u6742\u4ea4\u83dc\u8c31\u2026\u2026<\/p>\n<p>\u81ea\u5236&#xff0c;\u52a0\u4e86\u56fe\u4f8b&#xff0c;\u770b\u8d77\u6765\u9ad8\u7ea7\u4e86\u4e00\u70b9\u70b9\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"709\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151833-6978d749bba05.png\" width=\"1299\" \/><\/p>\n<p>\u4ee3\u7801&#xff1a;<\/p>\n<p>clear; clc; close all;<br \/>\n% \u5c0f\u63d0\u7434\u56fe\u4eec<br \/>\n%% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061; \u81ea\u5b9a\u4e49\u533a&#xff08;\u53ef\u4fee\u6539\u53c2\u6570&#xff09;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<br \/>\n% 1. \u6570\u636e\u53c2\u6570&#xff08;8\u4e2a\u56fd\u5bb6&#xff0c;\u6bcf\u4e2a\u56fd\u5bb6\u5bf9\u5e94\u4e00\u7ec4\u6a21\u62df\u6570\u636e&#xff09;<br \/>\ncountry_names &#061; {&#039;Burkina Faso&#039;,&#039;Ghana&#039;,&#039;Grenada&#039;,&#039;Kuwait&#039;,&#039;North Macedonia&#039;,&#039;San Marino&#039;,&#039;Saudi Arabia&#039;,&#039;Turkmenistan&#039;};<br \/>\nn_countries &#061; length(country_names);<br \/>\n% \u6a21\u62df\u6570\u636e&#xff1a;\u6bcf\u4e2a\u56fd\u5bb6\u751f\u6210\u4e00\u7ec4\u5e26\u5206\u5e03\u7684\u6570\u503c<br \/>\ndata &#061; {<br \/>\n    randn(200,1)*0.3 &#043; 1;<br \/>\n    randn(200,1)*0.4 &#043; 1.5;<br \/>\n    randn(200,1)*0.3 &#043; 1.2;<br \/>\n    randn(200,1)*0.4 &#043; 1.1;<br \/>\n    randn(200,1)*0.3 &#043; 0.9;<br \/>\n    randn(200,1)*0.5 &#043; 1.8;<br \/>\n    randn(200,1)*0.3 &#043; 1.0;<br \/>\n    randn(200,1)*0.4 &#043; 1.1;<br \/>\n};<br \/>\n% \u6bcf\u4e2a\u56fd\u5bb6\u5bf9\u5e94\u7684p\u503c<br \/>\np_values &#061; {&#039;p&#061;1.2e-26&#039;,&#039;p&#061;1.0e&#043;00&#039;,&#039;p&#061;1.0e&#043;00&#039;,&#039;p&#061;6.8e-01&#039;,&#039;p&#061;1.2e-26&#039;,&#039;p&#061;8.5e-01&#039;,&#039;p&#061;1.1e-03&#039;,&#039;p&#061;3.0e-09&#039;};<br \/>\n% 2. \u989c\u8272\u53c2\u6570&#xff08;8\u79cd\u67d4\u548c\u914d\u8272&#xff09;<br \/>\ncolor_list &#061; [<br \/>\n    0.2 0.5 0.8;   % \u84dd\u8272<br \/>\n    0.7 0.5 0.8;   % \u6d45\u7d2b<br \/>\n    0.5 0.8 0.6;   % \u6d45\u7eff<br \/>\n    0.3 0.6 0.8;   % \u6e56\u84dd<br \/>\n    0.7 0.7 0.4;   % \u6d45\u9ec4<br \/>\n    0.7 0.8 0.9;   % \u6d45\u84dd<br \/>\n    0.2 0.4 0.5;   % \u6df1\u84dd<br \/>\n    0.6 0.4 0.7;   % \u7d2b\u7c89<br \/>\n];<br \/>\n% \u7bb1\u7ebf\u56fe\u649e\u8272\u989c\u8272&#xff08;\u6bcf\u4e2a\u56fd\u5bb6\u7684\u8fb9\u6846\u989c\u8272&#xff09;<br \/>\nedge_colors &#061; [<br \/>\n    0.8 0.2 0.2;   % \u7ea2\u8272 &#8211; \u84dd\u8272\u7cfb\u7684\u649e\u8272<br \/>\n    0.2 0.8 0.2;   % \u7eff\u8272 &#8211; \u6d45\u7d2b\u7cfb\u7684\u649e\u8272<br \/>\n    0.8 0.4 0.1;   % \u6a59\u8272 &#8211; \u6d45\u7eff\u7cfb\u7684\u649e\u8272<br \/>\n    0.9 0.6 0.1;   % \u91d1\u8272 &#8211; \u6e56\u84dd\u7cfb\u7684\u649e\u8272<br \/>\n    0.5 0.2 0.8;   % \u7d2b\u8272 &#8211; \u6d45\u9ec4\u7cfb\u7684\u649e\u8272<br \/>\n    0.8 0.5 0.2;   % \u68d5\u8272 &#8211; \u6d45\u84dd\u7cfb\u7684\u649e\u8272<br \/>\n    0.9 0.3 0.1;   % \u6a59\u7ea2 &#8211; \u6df1\u84dd\u7cfb\u7684\u649e\u8272<br \/>\n    0.2 0.7 0.5;   % \u9752\u7eff &#8211; \u7d2b\u7c89\u7cfb\u7684\u649e\u8272<br \/>\n];<br \/>\n% 3. \u6587\u5b57\u53c2\u6570<br \/>\nylabel_txt &#061; &#039;Value&#039;;<br \/>\nfontSize &#061; 11;<br \/>\nlabelFontSize &#061; 13;<\/p>\n<p>%% &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061; \u7edf\u4e00\u6a21\u677f\u6267\u884c\u533a &#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;&#061;<br \/>\nfigure(&#039;Position&#039;,[150,150,1200,600],&#039;Color&#039;,&#039;white&#039;);<br \/>\nhold on;<\/p>\n<p>% \u5b58\u50a8\u56fe\u4f8b\u53e5\u67c4 &#8211; \u53ea\u5b58\u50a8\u6563\u70b9\u56fe\u7684\u53e5\u67c4<br \/>\nscatter_handles &#061; gobjects(1, n_countries);<\/p>\n<p>for i &#061; 1:n_countries<br \/>\n    % \u63d0\u53d6\u5f53\u524d\u56fd\u5bb6\u6570\u636e<br \/>\n    d &#061; data{i};<br \/>\n    % \u8ba1\u7b97\u5c0f\u63d0\u7434\u56fe\u6838\u5bc6\u5ea6<br \/>\n    [f,xi] &#061; ksdensity(d);<br \/>\n    f &#061; f\/max(f)*0.3; % \u7f29\u653e\u5bc6\u5ea6\u503c<\/p>\n<p>    % \u7ed8\u5236\u5c0f\u63d0\u7434\u56fe&#xff08;\u586b\u5145\u534a\u900f\u660e\u533a\u57df&#xff09;<br \/>\n    x_left &#061; i &#8211; f;<br \/>\n    x_right &#061; i &#043; f;<br \/>\n    fill([x_left,fliplr(x_right)],[xi,fliplr(xi)],color_list(i,:),&#039;EdgeColor&#039;,&#039;none&#039;,&#039;FaceAlpha&#039;,0.4,&#039;HandleVisibility&#039;,&#039;off&#039;);<\/p>\n<p>    % \u7ed8\u5236\u6563\u70b9&#xff08;\u96e8\u4e91\u70b9&#xff09;<br \/>\n    scatter_handles(i) &#061; scatter(i &#043; randn(length(d),1)*0.15, d, 15, &#8230;<br \/>\n        color_list(i,:), &#039;filled&#039;, &#039;Marker&#039;,&#039;o&#039;, &#8230;<br \/>\n        &#039;DisplayName&#039;, country_names{i});<\/p>\n<p>    % \u7ed8\u5236\u7bb1\u7ebf\u56fe&#xff08;\u81ea\u5b9a\u4e49\u989c\u8272&#xff09;<br \/>\n    bp &#061; boxplot(d, &#039;Positions&#039;,i, &#039;Widths&#039;,0.1, &#039;Symbol&#039;,&#039;&#043;&#039;, &#039;MedianStyle&#039;,&#039;line&#039;);<br \/>\n        %&#039;MedianStyle&#039;\u53ef\u4e3atarget<br \/>\n    % &#039;Symbol&#039;\u53ef\u4ee5\u4e0d\u4e3a\u7a7a&#xff0c;&#039;o&#039;\u6216\u8005&#039;.&#039;\u5c55\u793aoutliers<br \/>\n    % \u8bbe\u7f6e\u7bb1\u7ebf\u56fe\u989c\u8272<br \/>\n    set(bp, &#039;LineWidth&#039;, 0.1);<\/p>\n<p>    % \u83b7\u53d6\u7bb1\u7ebf\u56fe\u7684\u5404\u4e2a\u90e8\u5206\u5e76\u8bbe\u7f6e\u989c\u8272<br \/>\n    h &#061; findobj(gca, &#039;Tag&#039;, &#039;Box&#039;);<br \/>\n    for j &#061; 1:length(h)<br \/>\n        % \u627e\u5230\u5f53\u524d\u4f4d\u7f6e\u7684\u7bb1\u7ebf\u56fe<br \/>\n        if abs(get(h(j), &#039;XData&#039;) &#8211; i) &lt; 0.1<br \/>\n            % \u8bbe\u7f6e\u7bb1\u4f53\u586b\u5145\u989c\u8272<br \/>\n            patch_obj &#061; get(h(j), &#039;Parent&#039;);<br \/>\n            % \u83b7\u53d6\u7bb1\u4f53\u586b\u5145<br \/>\n            fill_h &#061; findobj(patch_obj, &#039;Type&#039;, &#039;patch&#039;);<br \/>\n            if ~isempty(fill_h)<br \/>\n                set(fill_h, &#039;FaceColor&#039;, color_list(i,:), &#8230;<br \/>\n                    &#039;FaceAlpha&#039;, 0.1, &#8230;<br \/>\n                    &#039;EdgeColor&#039;, edge_colors(i,:), &#8230;<br \/>\n                    &#039;LineWidth&#039;, 0.5);<br \/>\n            end<\/p>\n<p>            % \u8bbe\u7f6e\u4e2d\u4f4d\u7ebf\u989c\u8272<br \/>\n            median_h &#061; findobj(gca, &#039;Tag&#039;, &#039;Median&#039;);<br \/>\n            for k &#061; 1:length(median_h)<br \/>\n                if abs(get(median_h(k), &#039;XData&#039;) &#8211; i) &lt; 0.1<br \/>\n                    set(median_h(k), &#039;Color&#039;, edge_colors(i,:), &#039;LineWidth&#039;, 2);<br \/>\n                end<br \/>\n            end<\/p>\n<p>            % \u8bbe\u7f6e\u987b\u7ebf\u989c\u8272<br \/>\n            whisker_h &#061; findobj(gca, &#039;Tag&#039;, &#039;Whisker&#039;);<br \/>\n            for k &#061; 1:length(whisker_h)<br \/>\n                if abs(get(whisker_h(k), &#039;XData&#039;) &#8211; i) &lt; 0.1<br \/>\n                    set(whisker_h(k), &#039;Color&#039;, edge_colors(i,:), &#039;LineWidth&#039;, 1.5);<br \/>\n                end<br \/>\n            end<\/p>\n<p>            % \u8bbe\u7f6e\u5f02\u5e38\u70b9\u989c\u8272<br \/>\n            outlier_h &#061; findobj(gca, &#039;Tag&#039;, &#039;Outliers&#039;);<br \/>\n            for k &#061; 1:length(outlier_h)<br \/>\n                if abs(get(outlier_h(k), &#039;XData&#039;) &#8211; i) &lt; 0.1<br \/>\n                    set(outlier_h(k), &#039;MarkerEdgeColor&#039;, edge_colors(i,:), &#8230;<br \/>\n                        &#039;MarkerFaceColor&#039;, edge_colors(i,:), &#039;MarkerSize&#039;, 4);<br \/>\n                end<br \/>\n            end<br \/>\n        end<br \/>\n    end<\/p>\n<p>    % % \u521b\u5efa\u7bb1\u7ebf\u56fe\u7684\u4ee3\u7406\u56fe\u4f8b\u53e5\u67c4&#xff08;\u6ce8\u91ca\u6389&#xff0c;\u9700\u8981\u65f6\u53d6\u6d88\u6ce8\u91ca&#xff09;<br \/>\n    % box_handles(i) &#061; patch([NaN, NaN, NaN, NaN], [NaN, NaN, NaN, NaN], &#8230;<br \/>\n    %     color_list(i,:), &#039;EdgeColor&#039;, edge_colors(i,:), &#039;LineWidth&#039;, 1.5, &#8230;<br \/>\n    %     &#039;FaceAlpha&#039;, 0.3, &#039;DisplayName&#039;, [country_names{i} &#039; Box&#039;]);<\/p>\n<p>    % \u6dfb\u52a0p\u503c\u6587\u672c&#xff08;\u52a0\u7c97\u5b57\u4f53&#xff09;<br \/>\n    text(i, 3.8, p_values{i}, &#039;FontName&#039;,&#039;Times New Roman&#039;, &#039;FontSize&#039;,13, &#039;FontWeight&#039;,&#039;bold&#039;);<br \/>\nend<\/p>\n<p>% \u5750\u6807\u8f74\u8bbe\u7f6e&#xff08;\u6240\u6709\u5b57\u4f53\u52a0\u7c97&#xff09;<br \/>\nax &#061; gca;<br \/>\nax.XTick &#061; 1:n_countries;<br \/>\nax.XTickLabel &#061; country_names;<br \/>\nax.XTickLabelRotation &#061; 45;<br \/>\nax.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax.FontSize &#061; fontSize;<br \/>\nax.FontWeight &#061; &#039;bold&#039;;  % \u5750\u6807\u8f74\u523b\u5ea6\u52a0\u7c97<br \/>\nax.YLabel.String &#061; ylabel_txt;<br \/>\nax.YLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax.YLabel.FontSize &#061; labelFontSize;<br \/>\nax.YLabel.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax.YLim &#061; [0, 4];<br \/>\nax.TickDir &#061; &#039;out&#039;;<br \/>\nax.Box &#061; &#039;on&#039;;<\/p>\n<p>% \u56fe\u4f8b\u8bbe\u7f6e &#8211; \u5206\u4e3a\u4e24\u7c7b&#xff1a;\u6563\u70b9\u56fe\u4e00\u7c7b&#xff0c;\u7bb1\u7ebf\u56fe\u4e00\u7c7b<br \/>\n% \u76ee\u524d\u53ea\u663e\u793a\u6563\u70b9\u56fe\u56fe\u4f8b&#xff0c;\u7bb1\u7ebf\u56fe\u56fe\u4f8b\u5df2\u6ce8\u91ca<br \/>\nlegend(scatter_handles, &#039;Location&#039;, &#039;northeast&#039;, &#8230;<br \/>\n    &#039;FontSize&#039;, 10, &#039;FontName&#039;, &#039;Times New Roman&#039;, &#039;FontWeight&#039;, &#039;bold&#039;, &#8230;<br \/>\n    &#039;NumColumns&#039;, 2);<\/p>\n<p>hold off;<\/p>\n<p>% \u7ed3\u679c\u8f93\u51fa<br \/>\nfprintf(&#039;\u7ed8\u56fe\u5b8c\u6210&#xff1a;\u5c0f\u63d0\u7434-\u96e8\u4e91\u6df7\u5408\u56fe&#xff0c;\u5305\u542b8\u4e2a\u56fd\u5bb6\u7684\u6570\u636e\u5206\u5e03\\\\n&#039;); <\/p>\n<p>\u518d\u6765\u4e00\u4e2a\u57fa\u672c\u4e0a\u4e00\u6a21\u4e00\u6837\u7684&#xff0c;<\/p>\n<h5 id=\"%E5%8D%8A%E5%B0%8F%E6%8F%90%E7%90%B4%E5%9B%BE\" style=\"background-color:transparent\">\u534a\u5c0f\u63d0\u7434\u56fe<\/h5>\n<p>\u53c2\u8003&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"590\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151834-6978d74a1ccad.png\" width=\"1374\" \/><\/p>\n<p>\u81ea\u5236&#xff1a;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" height=\"735\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151834-6978d74a6fe2f.png\" width=\"1439\" \/><\/p>\n<p>\u4ee3\u7801&#xff1a;<\/p>\n<p>clear; clc; close all;<\/p>\n<p>%% \u81ea\u5b9a\u4e49\u533a<br \/>\ngroup_names &#061; {&#039;Conventional agriculture&#039;,&#039;Conservation agriculture&#039;};<br \/>\nn_groups &#061; length(group_names);<\/p>\n<p>data_ambient &#061; {<br \/>\n    randn(200,1)*1.2 &#043; 8.5;<br \/>\n    randn(200,1)*1.5 &#043; 12.5;<br \/>\n};<br \/>\ndata_warming &#061; {<br \/>\n    randn(200,1)*1.2 &#043; 8.5;<br \/>\n    randn(200,1)*1.5 &#043; 13.5;<br \/>\n};<\/p>\n<p>sig_marks &#061; {&#039;compare1&#039;,&#039;compare2&#039;};<\/p>\n<p>% \u989c\u8272\u8bbe\u7f6e<br \/>\ncolor_ambient &#061; [0.3 0.6 0.9];    % \u6d45\u84dd\u8272<br \/>\ncolor_warming &#061; [0.9 0.5 0.5];    % \u6d45\u7ea2\u8272<br \/>\ncolor_box &#061; [0.95 0.95 0.98];     % \u7bb1\u4f53\u989c\u8272<br \/>\ncolor_target &#061; [0.2 0.8 0.2];     % \u76ee\u6807\u7ebf\u989c\u8272<br \/>\ncolor_outlier &#061; [0.5 0.5 0.5];    % \u5f02\u5e38\u70b9\u989c\u8272<\/p>\n<p>ylabel_txt &#061; &#039;SOC (g C kg^{-1})&#039;;<br \/>\nfontSize &#061; 11;<br \/>\nlabelFontSize &#061; 13;<\/p>\n<p>violin_width &#061; 0.35;<br \/>\nbox_width &#061; 0.15;                  % \u7bb1\u4f53\u5bbd\u5ea6<br \/>\ngroup_gap &#061; 0;                  % \u7ec4\u95f4\u7a7a\u9699<br \/>\nmedian_line_width &#061; 2;<br \/>\nsig_offset_y &#061; 0.5;<br \/>\nbox_alpha &#061; 0.3;                   % \u7bb1\u4f53\u900f\u660e\u5ea6<br \/>\noutlier_size &#061; 0.6;                  % \u5f02\u5e38\u70b9\u5927\u5c0f<\/p>\n<p>%% \u7edf\u4e00\u6a21\u677f\u6267\u884c\u533a<br \/>\nfigure(&#039;Position&#039;,[150,150,1200,600],&#039;Color&#039;,&#039;white&#039;);<br \/>\ntiledlayout(1,2,&#039;TileSpacing&#039;,&#039;compact&#039;,&#039;Padding&#039;,&#039;compact&#039;);<\/p>\n<p>% \u5b50\u56fe1&#xff1a;\u6328\u5728\u4e00\u8d77\u7684\u534a\u5c0f\u63d0\u7434\u56fe<br \/>\nnexttile;<br \/>\nax1 &#061; gca;<br \/>\nhold(ax1, &#039;on&#039;);<\/p>\n<p>legend_handles &#061; [];<\/p>\n<p>for i &#061; 1:n_groups<br \/>\n    d_ambient &#061; data_ambient{i};<br \/>\n    d_warming &#061; data_warming{i};<\/p>\n<p>    [f_ambient,xi_ambient] &#061; ksdensity(d_ambient);<br \/>\n    [f_warming,xi_warming] &#061; ksdensity(d_warming);<\/p>\n<p>    f_ambient &#061; f_ambient\/max(f_ambient)*violin_width;<br \/>\n    f_warming &#061; f_warming\/max(f_warming)*violin_width;<\/p>\n<p>    % \u8c03\u6574x\u4f4d\u7f6e&#xff0c;\u8003\u8651\u7ec4\u95f4\u7a7a\u9699<br \/>\n    x_center &#061; i;<br \/>\n    x_left &#061; x_center &#8211; group_gap\/2;<br \/>\n    x_right &#061; x_center &#043; group_gap\/2;<\/p>\n<p>    % \u5de6\u4fa7\u534a\u5c0f\u63d0\u7434&#xff08;Ambient&#xff09;<br \/>\n    if i &#061;&#061; 1<br \/>\n        h_ambient &#061; fill([x_left-f_ambient, fliplr(x_left*ones(size(f_ambient)))],&#8230;<br \/>\n                         [xi_ambient, fliplr(xi_ambient)], color_ambient,&#8230;<br \/>\n                         &#039;EdgeColor&#039;, color_ambient*0.8, &#039;LineWidth&#039;, 0.5, &#039;FaceAlpha&#039;, 0.6, &#039;DisplayName&#039;, &#039;Ambient&#039;);<br \/>\n        legend_handles &#061; [legend_handles, h_ambient];<br \/>\n    else<br \/>\n        fill([x_left-f_ambient, fliplr(x_left*ones(size(f_ambient)))],&#8230;<br \/>\n             [xi_ambient, fliplr(xi_ambient)], color_ambient,&#8230;<br \/>\n             &#039;EdgeColor&#039;, color_ambient*0.8, &#039;LineWidth&#039;, 0.5, &#039;FaceAlpha&#039;, 0.6, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\n    end<\/p>\n<p>    % \u53f3\u4fa7\u534a\u5c0f\u63d0\u7434&#xff08;Warming&#xff09;<br \/>\n    if i &#061;&#061; 1<br \/>\n        h_warming &#061; fill([x_right*ones(size(f_warming)), fliplr(x_right&#043;f_warming)],&#8230;<br \/>\n                         [xi_warming, fliplr(xi_warming)], color_warming,&#8230;<br \/>\n                         &#039;EdgeColor&#039;, color_warming*0.8, &#039;LineWidth&#039;, 0.5, &#039;FaceAlpha&#039;, 0.6, &#039;DisplayName&#039;, &#039;Warming&#039;);<br \/>\n        legend_handles &#061; [legend_handles, h_warming];<br \/>\n    else<br \/>\n        fill([x_right*ones(size(f_warming)), fliplr(x_right&#043;f_warming)],&#8230;<br \/>\n             [xi_warming, fliplr(xi_warming)], color_warming,&#8230;<br \/>\n             &#039;EdgeColor&#039;, color_warming*0.8, &#039;LineWidth&#039;, 0.5, &#039;FaceAlpha&#039;, 0.6, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\n    end<\/p>\n<p>    % \u534a\u7bb1\u578b\u56fe &#8211; \u5de6\u4fa7&#xff08;Ambient&#xff09;<br \/>\n    q_ambient &#061; quantile(d_ambient, [0.25, 0.5, 0.75]);<br \/>\n    iqr_ambient &#061; q_ambient(3) &#8211; q_ambient(1);<br \/>\n    whisker_ambient_low &#061; max(q_ambient(1)-1.5*iqr_ambient, min(d_ambient));<br \/>\n    whisker_ambient_high &#061; min(q_ambient(3)&#043;1.5*iqr_ambient, max(d_ambient));<\/p>\n<p>    % \u5de6\u4fa7\u7bb1\u4f53&#xff08;\u4f7f\u7528patch\u4ee3\u66ffrectangle&#xff09;<br \/>\n    box_x &#061; [x_left-box_width, x_left, x_left, x_left-box_width, x_left-box_width];<br \/>\n    box_y &#061; [q_ambient(1), q_ambient(1), q_ambient(3), q_ambient(3), q_ambient(1)];<br \/>\n    patch(box_x, box_y, color_box, &#039;EdgeColor&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1, &#039;FaceAlpha&#039;, box_alpha, &#039;HandleVisibility&#039;, &#039;off&#039;);<\/p>\n<p>    % \u5de6\u4fa7\u76ee\u6807\u7ebf&#xff08;\u539f\u6765\u7684\u4e2d\u4f4d\u7ebf&#xff09;<br \/>\n    line([x_left-box_width, x_left], [q_ambient(2), q_ambient(2)],&#8230;<br \/>\n         &#039;Color&#039;, color_target, &#039;LineWidth&#039;, median_line_width, &#039;LineStyle&#039;, &#039;-&#039;);<\/p>\n<p>    % \u5de6\u4fa7\u987b\u7ebf<br \/>\n    line([x_left-box_width*0.5, x_left-box_width*0.5], [whisker_ambient_low, q_ambient(1)],&#8230;<br \/>\n         &#039;Color&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1);<br \/>\n    line([x_left-box_width*0.5, x_left-box_width*0.5], [q_ambient(3), whisker_ambient_high],&#8230;<br \/>\n         &#039;Color&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1);<\/p>\n<p>    % \u5de6\u4fa7\u5f02\u5e38\u70b9<br \/>\n    outliers_ambient &#061; d_ambient(d_ambient &lt; whisker_ambient_low | d_ambient &gt; whisker_ambient_high);<br \/>\n    if ~isempty(outliers_ambient)<br \/>\n        plot(repmat(x_left-box_width*0.5, length(outliers_ambient), 1), outliers_ambient, &#039;&#043;&#039;,&#8230;<br \/>\n             &#039;Color&#039;, color_outlier, &#039;MarkerSize&#039;, outlier_size, &#039;LineWidth&#039;, 1.5, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\n    end<\/p>\n<p>    % \u534a\u7bb1\u578b\u56fe &#8211; \u53f3\u4fa7&#xff08;Warming&#xff09;<br \/>\n    q_warming &#061; quantile(d_warming, [0.25, 0.5, 0.75]);<br \/>\n    iqr_warming &#061; q_warming(3) &#8211; q_warming(1);<br \/>\n    whisker_warming_low &#061; max(q_warming(1)-1.5*iqr_warming, min(d_warming));<br \/>\n    whisker_warming_high &#061; min(q_warming(3)&#043;1.5*iqr_warming, max(d_warming));<\/p>\n<p>    % \u53f3\u4fa7\u7bb1\u4f53&#xff08;\u4f7f\u7528patch&#xff09;<br \/>\n    box_x &#061; [x_right, x_right&#043;box_width, x_right&#043;box_width, x_right, x_right];<br \/>\n    box_y &#061; [q_warming(1), q_warming(1), q_warming(3), q_warming(3), q_warming(1)];<br \/>\n    patch(box_x, box_y, color_box, &#039;EdgeColor&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1, &#039;FaceAlpha&#039;, box_alpha, &#039;HandleVisibility&#039;, &#039;off&#039;);<\/p>\n<p>    % \u53f3\u4fa7\u76ee\u6807\u7ebf<br \/>\n    line([x_right, x_right&#043;box_width], [q_warming(2), q_warming(2)],&#8230;<br \/>\n         &#039;Color&#039;, color_target, &#039;LineWidth&#039;, median_line_width, &#039;LineStyle&#039;, &#039;-&#039;);<\/p>\n<p>    % \u53f3\u4fa7\u987b\u7ebf<br \/>\n    line([x_right&#043;box_width*0.5, x_right&#043;box_width*0.5], [whisker_warming_low, q_warming(1)],&#8230;<br \/>\n         &#039;Color&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1);<br \/>\n    line([x_right&#043;box_width*0.5, x_right&#043;box_width*0.5], [q_warming(3), whisker_warming_high],&#8230;<br \/>\n         &#039;Color&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1);<\/p>\n<p>    % \u53f3\u4fa7\u5f02\u5e38\u70b9<br \/>\n    outliers_warming &#061; d_warming(d_warming &lt; whisker_warming_low | d_warming &gt; whisker_warming_high);<br \/>\n    if ~isempty(outliers_warming)<br \/>\n        plot(repmat(x_right&#043;box_width*0.5, length(outliers_warming), 1), outliers_warming, &#039;&#043;&#039;,&#8230;<br \/>\n             &#039;Color&#039;, color_outlier, &#039;MarkerSize&#039;, outlier_size, &#039;LineWidth&#039;, 1.5, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\n    end<\/p>\n<p>    % \u6dfb\u52a0\u663e\u8457\u6027\u6807\u8bb0<br \/>\n    text(x_center, max([d_ambient; d_warming]) &#043; sig_offset_y, sig_marks{i},&#8230;<br \/>\n        &#039;FontName&#039;,&#039;Times New Roman&#039;,&#039;FontSize&#039;,12,&#039;FontWeight&#039;,&#039;bold&#039;,&#8230;<br \/>\n        &#039;HorizontalAlignment&#039;,&#039;center&#039;,&#039;Color&#039;,[0.3 0.3 0.3]);<br \/>\nend<\/p>\n<p>ax1.XTick &#061; 1:n_groups;<br \/>\nax1.XTickLabel &#061; group_names;<br \/>\nax1.XTickLabelRotation &#061; 15;<br \/>\nax1.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax1.FontSize &#061; fontSize;<br \/>\nax1.YLabel.String &#061; ylabel_txt;<br \/>\nax1.YLabel.FontWeight &#061; &#039;bold&#039;;<br \/>\nax1.YLabel.FontSize &#061; labelFontSize;<br \/>\nax1.YLabel.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax1.YLim &#061; [4, 20];<br \/>\nax1.TickDir &#061; &#039;out&#039;;<br \/>\nax1.Box &#061; &#039;on&#039;;<\/p>\n<p>legend(legend_handles, {&#039;Ambient&#039;,&#039;Warming&#039;}, &#039;Location&#039;,&#039;northeast&#039;,&#8230;<br \/>\n    &#039;FontSize&#039;,fontSize,&#039;FontName&#039;,&#039;Times New Roman&#039;);<\/p>\n<p>% \u5b50\u56fe2&#xff1a;\u5206\u5f00\u7684\u534a\u5c0f\u63d0\u7434\u56fe<br \/>\nnexttile;<br \/>\nax2 &#061; gca;<br \/>\nhold(ax2, &#039;on&#039;);<\/p>\n<p>group2_names &#061; {&#039;Conventional&#039;,&#039;Conservation&#039;};<br \/>\nn_group2 &#061; length(group2_names);<\/p>\n<p>% \u8c03\u6574\u5206\u5f00\u56fe\u7684\u4f4d\u7f6e&#xff0c;\u8bbe\u7f6e\u66f4\u5927\u7684\u95f4\u9699<br \/>\ngroup_spacing &#061; 1.2;<br \/>\nx_positions &#061; [1, 1.6, 3.2, 3.8];  % \u4e24\u7ec4\u5206\u5f00\u7684x\u4f4d\u7f6e<br \/>\ngroup_centers &#061; [1.3, 3.5];         % \u6bcf\u7ec4\u4e2d\u5fc3\u4f4d\u7f6e<\/p>\n<p>for g &#061; 1:n_group2<br \/>\n    i &#061; g;<br \/>\n    d_ambient &#061; data_ambient{i};<br \/>\n    d_warming &#061; data_warming{i};<\/p>\n<p>    [f_ambient,xi_ambient] &#061; ksdensity(d_ambient);<br \/>\n    [f_warming,xi_warming] &#061; ksdensity(d_warming);<\/p>\n<p>    f_ambient &#061; f_ambient\/max(f_ambient)*violin_width;<br \/>\n    f_warming &#061; f_warming\/max(f_warming)*violin_width;<\/p>\n<p>    x_left &#061; x_positions(2*g-1);<br \/>\n    x_right &#061; x_positions(2*g);<\/p>\n<p>    % \u5de6\u4fa7\u534a\u5c0f\u63d0\u7434&#xff08;Ambient&#xff09;<br \/>\n    fill([x_left-f_ambient, fliplr(x_left*ones(size(f_ambient)))],&#8230;<br \/>\n         [xi_ambient, fliplr(xi_ambient)], color_ambient,&#8230;<br \/>\n         &#039;EdgeColor&#039;, color_ambient*0.8, &#039;LineWidth&#039;, 0.5, &#039;FaceAlpha&#039;, 0.6, &#039;HandleVisibility&#039;, &#039;off&#039;);<\/p>\n<p>    % \u53f3\u4fa7\u534a\u5c0f\u63d0\u7434&#xff08;Warming&#xff09;<br \/>\n    fill([x_right*ones(size(f_warming)), fliplr(x_right&#043;f_warming)],&#8230;<br \/>\n         [xi_warming, fliplr(xi_warming)], color_warming,&#8230;<br \/>\n         &#039;EdgeColor&#039;, color_warming*0.8, &#039;LineWidth&#039;, 0.5, &#039;FaceAlpha&#039;, 0.6, &#039;HandleVisibility&#039;, &#039;off&#039;);<\/p>\n<p>    % \u5de6\u4fa7\u534a\u7bb1\u578b\u56fe&#xff08;Ambient&#xff09;<br \/>\n    q_ambient &#061; quantile(d_ambient, [0.25, 0.5, 0.75]);<br \/>\n    iqr_ambient &#061; q_ambient(3) &#8211; q_ambient(1);<br \/>\n    whisker_ambient_low &#061; max(q_ambient(1)-1.5*iqr_ambient, min(d_ambient));<br \/>\n    whisker_ambient_high &#061; min(q_ambient(3)&#043;1.5*iqr_ambient, max(d_ambient));<\/p>\n<p>    % \u5de6\u4fa7\u7bb1\u4f53&#xff08;patch&#xff09;<br \/>\n    box_x &#061; [x_left-box_width, x_left, x_left, x_left-box_width, x_left-box_width];<br \/>\n    box_y &#061; [q_ambient(1), q_ambient(1), q_ambient(3), q_ambient(3), q_ambient(1)];<br \/>\n    patch(box_x, box_y, color_box, &#039;EdgeColor&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1, &#039;FaceAlpha&#039;, box_alpha, &#039;HandleVisibility&#039;, &#039;off&#039;);<\/p>\n<p>    line([x_left-box_width, x_left], [q_ambient(2), q_ambient(2)],&#8230;<br \/>\n         &#039;Color&#039;, color_target, &#039;LineWidth&#039;, median_line_width, &#039;LineStyle&#039;, &#039;-&#039;);<\/p>\n<p>    line([x_left-box_width*0.5, x_left-box_width*0.5], [whisker_ambient_low, q_ambient(1)],&#8230;<br \/>\n         &#039;Color&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1);<br \/>\n    line([x_left-box_width*0.5, x_left-box_width*0.5], [q_ambient(3), whisker_ambient_high],&#8230;<br \/>\n         &#039;Color&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1);<\/p>\n<p>    % \u5de6\u4fa7\u5f02\u5e38\u70b9<br \/>\n    outliers_ambient &#061; d_ambient(d_ambient &lt; whisker_ambient_low | d_ambient &gt; whisker_ambient_high);<br \/>\n    if ~isempty(outliers_ambient)<br \/>\n        plot(repmat(x_left-box_width*0.5, length(outliers_ambient), 1), outliers_ambient, &#039;&#043;&#039;,&#8230;<br \/>\n             &#039;Color&#039;, color_outlier, &#039;MarkerSize&#039;, outlier_size, &#039;LineWidth&#039;, 1.5, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\n    end<\/p>\n<p>    % \u53f3\u4fa7\u534a\u7bb1\u578b\u56fe&#xff08;Warming&#xff09;<br \/>\n    q_warming &#061; quantile(d_warming, [0.25, 0.5, 0.75]);<br \/>\n    iqr_warming &#061; q_warming(3) &#8211; q_warming(1);<br \/>\n    whisker_warming_low &#061; max(q_warming(1)-1.5*iqr_warming, min(d_warming));<br \/>\n    whisker_warming_high &#061; min(q_warming(3)&#043;1.5*iqr_warming, max(d_warming));<\/p>\n<p>    % \u53f3\u4fa7\u7bb1\u4f53&#xff08;patch&#xff09;<br \/>\n    box_x &#061; [x_right, x_right&#043;box_width, x_right&#043;box_width, x_right, x_right];<br \/>\n    box_y &#061; [q_warming(1), q_warming(1), q_warming(3), q_warming(3), q_warming(1)];<br \/>\n    patch(box_x, box_y, color_box, &#039;EdgeColor&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1, &#039;FaceAlpha&#039;, box_alpha, &#039;HandleVisibility&#039;, &#039;off&#039;);<\/p>\n<p>    line([x_right, x_right&#043;box_width], [q_warming(2), q_warming(2)],&#8230;<br \/>\n         &#039;Color&#039;, color_target, &#039;LineWidth&#039;, median_line_width, &#039;LineStyle&#039;, &#039;-&#039;);<\/p>\n<p>    line([x_right&#043;box_width*0.5, x_right&#043;box_width*0.5], [whisker_warming_low, q_warming(1)],&#8230;<br \/>\n         &#039;Color&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1);<br \/>\n    line([x_right&#043;box_width*0.5, x_right&#043;box_width*0.5], [q_warming(3), whisker_warming_high],&#8230;<br \/>\n         &#039;Color&#039;, &#039;k&#039;, &#039;LineWidth&#039;, 1);<\/p>\n<p>    % \u53f3\u4fa7\u5f02\u5e38\u70b9<br \/>\n    outliers_warming &#061; d_warming(d_warming &lt; whisker_warming_low | d_warming &gt; whisker_warming_high);<br \/>\n    if ~isempty(outliers_warming)<br \/>\n        plot(repmat(x_right&#043;box_width*0.5, length(outliers_warming), 1), outliers_warming, &#039;&#043;&#039;,&#8230;<br \/>\n             &#039;Color&#039;, color_outlier, &#039;MarkerSize&#039;, outlier_size, &#039;LineWidth&#039;, 1.5, &#039;HandleVisibility&#039;, &#039;off&#039;);<br \/>\n    end<\/p>\n<p>    % \u6dfb\u52a0\u663e\u8457\u6027\u6807\u8bb0<br \/>\n    text(group_centers(g), max([d_ambient; d_warming]) &#043; sig_offset_y, sig_marks{g},&#8230;<br \/>\n        &#039;FontName&#039;,&#039;Times New Roman&#039;,&#039;FontSize&#039;,12,&#039;FontWeight&#039;,&#039;bold&#039;,&#8230;<br \/>\n        &#039;HorizontalAlignment&#039;,&#039;center&#039;,&#039;Color&#039;,[0.3 0.3 0.3]);<br \/>\nend<\/p>\n<p>ax2.XTick &#061; group_centers;<br \/>\nax2.XTickLabel &#061; group2_names;<br \/>\nax2.FontName &#061; &#039;Times New Roman&#039;;<br \/>\nax2.FontSize &#061; fontSize;<br \/>\nax2.YLim &#061; [4, 20];<br \/>\nax2.TickDir &#061; &#039;out&#039;;<br \/>\nax2.Box &#061; &#039;on&#039;;<\/p>\n<p>% \u6dfb\u52a0\u53f3\u4fa7\u5b50\u56fe\u7684\u56fe\u4f8b<br \/>\nlegend_handles2 &#061; [];<br \/>\nh1 &#061; patch([0,0,0,0],[0,0,0,0],color_ambient,&#039;EdgeColor&#039;,color_ambient*0.8,&#039;LineWidth&#039;,0.5,&#039;FaceAlpha&#039;,0.6,&#039;DisplayName&#039;,&#039;Ambient&#039;);<br \/>\nh2 &#061; patch([0,0,0,0],[0,0,0,0],color_warming,&#039;EdgeColor&#039;,color_warming*0.8,&#039;LineWidth&#039;,0.5,&#039;FaceAlpha&#039;,0.6,&#039;DisplayName&#039;,&#039;Warming&#039;);<br \/>\nlegend_handles2 &#061; [h1, h2];<br \/>\nlegend(legend_handles2, {&#039;Ambient&#039;,&#039;Warming&#039;}, &#039;Location&#039;,&#039;northeast&#039;,&#8230;<br \/>\n    &#039;FontSize&#039;,fontSize,&#039;FontName&#039;,&#039;Times New Roman&#039;);<\/p>\n<p>hold(ax1, &#039;off&#039;);<br \/>\nhold(ax2, &#039;off&#039;);<\/p>\n<p>fprintf(&#039;\u7ed8\u56fe\u5b8c\u6210\\\\n&#039;); <\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u76ee\u5f55<br \/>\n\u6298\u7ebf\u56fe\u2014\u2014<br \/>\n2D\u7d2f\u8ba1\u6298\u7ebf\u56fe<br \/>\n3D\u5e26\u900f\u660e\u5ea6\u5207\u7247<br \/>\n2D \u591a\u7ebf\u5bf9\u5e94\u540c\u56fe\u4f8b&#xff0c;\u9650\u5b9a\u8fb9\u754c<br \/>\n2D \u53cc\u5750\u6807&#xff0c;\u5e26\u5149\u6655\u6548\u679c&#xff0c;\u8986\u76d6\u6e10\u53d8\u989c\u8272\u586b\u5145\u533a\u57df&#xff0c;\u5e26\u56fe\u4f8b<br \/>\n\u67f1\u72b6\u56fe\u2014\u2014<br \/>\n3D \u4e0d\u540c\u989c\u8272 \u67f1\u72b6\u56fe<br \/>\n2D \u53cc\u5750\u6807 \u67f1\u72b6\u56fe\u6298\u7ebf\u56fe\u6742\u4ea4<br \/>\n\u5176\u4ed6\u7edf\u8ba1\u5206\u5e03\u56fe\u2014\u2014<br \/>\n\u4e91\u96e8\u56fe\u548c\u7bb1\u578b\u56fe\u7684\u6742\u4ea4\u56fe&#xff1f;<br \/>\n\u534a\u5c0f\u63d0\u7434\u56fe \u6298\u7ebf\u56fe\u2014\u2014<br \/>\n2D\u7d2f\u8ba1\u6298\u7ebf\u56fe \u81ea\u5236 \u4ee3\u7801&#xff1a;<br \/>\nclear; clc; close all;%% \u81ea\u5b9a\u4e49\u533a<br \/>\ny<\/p>\n","protected":false},"author":2,"featured_media":66971,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[1284,50,87],"topic":[],"class_list":["post-66989","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-matlab","tag-50","tag-87"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u3010\u6570\u6a21\u7f8e\u8d5b=\u7f8e\u672f\u5927\u8d5b\uff1f\u3011O\u5956\u8bba\u6587\u56fe\u7247\u590d\u523b\u2014\u2014\u9ad8\u7ea7\u7ed8\u56fematlab\u4ee3\u7801\u96c6\u9526\uff0c\u8ba9\u4f60\u6446\u8131\u753b\u56fe\u201c\u4e00\u773cMATLAB\u201d\u7684\u75db\u82e6\uff01 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/66989.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u3010\u6570\u6a21\u7f8e\u8d5b=\u7f8e\u672f\u5927\u8d5b\uff1f\u3011O\u5956\u8bba\u6587\u56fe\u7247\u590d\u523b\u2014\u2014\u9ad8\u7ea7\u7ed8\u56fematlab\u4ee3\u7801\u96c6\u9526\uff0c\u8ba9\u4f60\u6446\u8131\u753b\u56fe\u201c\u4e00\u773cMATLAB\u201d\u7684\u75db\u82e6\uff01 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u76ee\u5f55 \u6298\u7ebf\u56fe\u2014\u2014 2D\u7d2f\u8ba1\u6298\u7ebf\u56fe 3D\u5e26\u900f\u660e\u5ea6\u5207\u7247 2D \u591a\u7ebf\u5bf9\u5e94\u540c\u56fe\u4f8b&#xff0c;\u9650\u5b9a\u8fb9\u754c 2D \u53cc\u5750\u6807&#xff0c;\u5e26\u5149\u6655\u6548\u679c&#xff0c;\u8986\u76d6\u6e10\u53d8\u989c\u8272\u586b\u5145\u533a\u57df&#xff0c;\u5e26\u56fe\u4f8b \u67f1\u72b6\u56fe\u2014\u2014 3D \u4e0d\u540c\u989c\u8272 \u67f1\u72b6\u56fe 2D \u53cc\u5750\u6807 \u67f1\u72b6\u56fe\u6298\u7ebf\u56fe\u6742\u4ea4 \u5176\u4ed6\u7edf\u8ba1\u5206\u5e03\u56fe\u2014\u2014 \u4e91\u96e8\u56fe\u548c\u7bb1\u578b\u56fe\u7684\u6742\u4ea4\u56fe&#xff1f; \u534a\u5c0f\u63d0\u7434\u56fe \u6298\u7ebf\u56fe\u2014\u2014 2D\u7d2f\u8ba1\u6298\u7ebf\u56fe \u81ea\u5236 \u4ee3\u7801&#xff1a; clear; clc; close all;%% \u81ea\u5b9a\u4e49\u533a y\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/66989.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-27T15:18:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151827-6978d743b9620.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"24 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/66989.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/66989.html\",\"name\":\"\u3010\u6570\u6a21\u7f8e\u8d5b=\u7f8e\u672f\u5927\u8d5b\uff1f\u3011O\u5956\u8bba\u6587\u56fe\u7247\u590d\u523b\u2014\u2014\u9ad8\u7ea7\u7ed8\u56fematlab\u4ee3\u7801\u96c6\u9526\uff0c\u8ba9\u4f60\u6446\u8131\u753b\u56fe\u201c\u4e00\u773cMATLAB\u201d\u7684\u75db\u82e6\uff01 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-01-27T15:18:35+00:00\",\"dateModified\":\"2026-01-27T15:18:35+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/66989.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/66989.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/66989.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u3010\u6570\u6a21\u7f8e\u8d5b=\u7f8e\u672f\u5927\u8d5b\uff1f\u3011O\u5956\u8bba\u6587\u56fe\u7247\u590d\u523b\u2014\u2014\u9ad8\u7ea7\u7ed8\u56fematlab\u4ee3\u7801\u96c6\u9526\uff0c\u8ba9\u4f60\u6446\u8131\u753b\u56fe\u201c\u4e00\u773cMATLAB\u201d\u7684\u75db\u82e6\uff01\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u3010\u6570\u6a21\u7f8e\u8d5b=\u7f8e\u672f\u5927\u8d5b\uff1f\u3011O\u5956\u8bba\u6587\u56fe\u7247\u590d\u523b\u2014\u2014\u9ad8\u7ea7\u7ed8\u56fematlab\u4ee3\u7801\u96c6\u9526\uff0c\u8ba9\u4f60\u6446\u8131\u753b\u56fe\u201c\u4e00\u773cMATLAB\u201d\u7684\u75db\u82e6\uff01 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/66989.html","og_locale":"zh_CN","og_type":"article","og_title":"\u3010\u6570\u6a21\u7f8e\u8d5b=\u7f8e\u672f\u5927\u8d5b\uff1f\u3011O\u5956\u8bba\u6587\u56fe\u7247\u590d\u523b\u2014\u2014\u9ad8\u7ea7\u7ed8\u56fematlab\u4ee3\u7801\u96c6\u9526\uff0c\u8ba9\u4f60\u6446\u8131\u753b\u56fe\u201c\u4e00\u773cMATLAB\u201d\u7684\u75db\u82e6\uff01 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u76ee\u5f55 \u6298\u7ebf\u56fe\u2014\u2014 2D\u7d2f\u8ba1\u6298\u7ebf\u56fe 3D\u5e26\u900f\u660e\u5ea6\u5207\u7247 2D \u591a\u7ebf\u5bf9\u5e94\u540c\u56fe\u4f8b&#xff0c;\u9650\u5b9a\u8fb9\u754c 2D \u53cc\u5750\u6807&#xff0c;\u5e26\u5149\u6655\u6548\u679c&#xff0c;\u8986\u76d6\u6e10\u53d8\u989c\u8272\u586b\u5145\u533a\u57df&#xff0c;\u5e26\u56fe\u4f8b \u67f1\u72b6\u56fe\u2014\u2014 3D \u4e0d\u540c\u989c\u8272 \u67f1\u72b6\u56fe 2D \u53cc\u5750\u6807 \u67f1\u72b6\u56fe\u6298\u7ebf\u56fe\u6742\u4ea4 \u5176\u4ed6\u7edf\u8ba1\u5206\u5e03\u56fe\u2014\u2014 \u4e91\u96e8\u56fe\u548c\u7bb1\u578b\u56fe\u7684\u6742\u4ea4\u56fe&#xff1f; \u534a\u5c0f\u63d0\u7434\u56fe \u6298\u7ebf\u56fe\u2014\u2014 2D\u7d2f\u8ba1\u6298\u7ebf\u56fe \u81ea\u5236 \u4ee3\u7801&#xff1a; clear; clc; close all;%% \u81ea\u5b9a\u4e49\u533a y","og_url":"https:\/\/www.wsisp.com\/helps\/66989.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-01-27T15:18:35+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/01\/20260127151827-6978d743b9620.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"24 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/66989.html","url":"https:\/\/www.wsisp.com\/helps\/66989.html","name":"\u3010\u6570\u6a21\u7f8e\u8d5b=\u7f8e\u672f\u5927\u8d5b\uff1f\u3011O\u5956\u8bba\u6587\u56fe\u7247\u590d\u523b\u2014\u2014\u9ad8\u7ea7\u7ed8\u56fematlab\u4ee3\u7801\u96c6\u9526\uff0c\u8ba9\u4f60\u6446\u8131\u753b\u56fe\u201c\u4e00\u773cMATLAB\u201d\u7684\u75db\u82e6\uff01 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-01-27T15:18:35+00:00","dateModified":"2026-01-27T15:18:35+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/66989.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/66989.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/66989.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u3010\u6570\u6a21\u7f8e\u8d5b=\u7f8e\u672f\u5927\u8d5b\uff1f\u3011O\u5956\u8bba\u6587\u56fe\u7247\u590d\u523b\u2014\u2014\u9ad8\u7ea7\u7ed8\u56fematlab\u4ee3\u7801\u96c6\u9526\uff0c\u8ba9\u4f60\u6446\u8131\u753b\u56fe\u201c\u4e00\u773cMATLAB\u201d\u7684\u75db\u82e6\uff01"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/66989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=66989"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/66989\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/66971"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=66989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=66989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=66989"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=66989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}