主要内容

使用实时编辑器加快探索编程速度

下面是如何使用实时编辑器加快探索编程速度的示例。以下示例演示如何使用实时编辑器:

  • 随代码一起查看代码输出。

  • 将您的程序划分为多个节以分别计算各个代码块。

  • 纳入可视化内容。

  • 使用控件对参数值进行试验。

  • 汇总和共享您的发现。

加载高速公路死亡数据

实时编辑器随代码一起显示代码输出。要运行节,请转至实时编辑器选项卡,然后选择运行节按钮。您也可以点击在将鼠标移至节的左边缘时显示的蓝条。

在下面的示例中,我们将探索一些高速公路死亡数据。首先加载数据。变量显示为表的列标题。

load fatalities
fatalities(1:10,:)
ans=10×8 table
                            longitude    latitude    deaths    drivers    vehicles    vehicleMiles    alcoholRelated    urbanPopulation
                            _________    ________    ______    _______    ________    ____________    ______________    _______________

    Wyoming                  -107.56      43.033      164      380.18      671.53         9261              54              65.226     
    District_of_Columbia     -77.027      38.892       43      349.12       240.4         3742              12                 100     
    Vermont                  -72.556      44.043       98      550.46      551.52         7855              20              38.196     
    North_Dakota               -99.5      47.469      100      461.78      721.84         7594              35              55.807     
    South_Dakota             -99.679      44.272      197       563.3      882.77         8784              76              51.923     
    Delaware                 -75.494      39.107      134      533.94      728.52         9301              48              80.021     
    Montana                  -110.58      46.867      229      712.88      1056.7        11207             100              54.031     
    Rhode_Island             -71.434      41.589       83      741.84       834.5         8473              41              90.936     
    New_Hampshire            -71.559      43.908      171      985.77      1244.6        13216              51              59.181     
    Maine                    -69.081      44.886      194      984.83      1106.8        14948              58              40.206     

计算死亡率

使用实时编辑器可以将您的程序划分为包含文本、代码和输出的多个节。要创建新的节,请转至实时编辑器选项卡,然后点击分节符按钮。节中的代码可以独立运行,这使得可轻松了解您在编写程序时的想法。

计算每一百万行车里程的死亡率。从这些值中,我们可以发现具有最低和最高死亡率的州。

states = fatalities.Properties.RowNames;
rate = fatalities.deaths./fatalities.vehicleMiles;
[~, minIdx] = min(rate);                  % Minimum accident rate
[~, maxIdx] = max(rate);                  % Maximum accident rate
disp([states{minIdx} ' has the lowest fatality rate at ' num2str(rate(minIdx))])
Massachusetts has the lowest fatality rate at 0.0086907
disp([states{maxIdx} ' has the highest fatality rate at ' num2str(rate(maxIdx))])
Mississippi has the highest fatality rate at 0.022825

死亡分布

您可以在程序中纳入可视化内容。与输出类似,绘图和图窗随生成这些内容的代码一起显示。

我们可以使用条形图查看各个州的死亡率分布。有 11 个州每百万行车里程的死亡率大于 0.02。

histogram(rate,10)
xlabel('Fatalities per Million Vehicle Miles')
ylabel('Number of States')

Figure contains an axes object. The axes object with xlabel Fatalities per Million Vehicle Miles, ylabel Number of States contains an object of type histogram.

查找数据中的相关性

您可以通过在实时编辑器中用不同的参数值进行试验来查看结果的变化,从而快速探索您的数据。添加控件以交互方式更改参数值。要添加控件,请转至实时编辑器选项卡,点击控件按钮,然后从可用选项中进行选择。

我们可以用这些数据进行试验,以了解表中是否有任何变量与高速公路的死亡事故存在关联。例如,结果显示,城市人口百分比更高的州中的高速公路死亡率更低。

dataToPlot = "urbanPopulation";
close                                      % Close any open figures
scatter(fatalities.(dataToPlot),rate)         % Plot fatalities vs. selected variable
xlabel(dataToPlot)
ylabel('Percent Fatalities per Million Vehicle Miles') 

hold on
xmin = min(fatalities.(dataToPlot));
xmax = max(fatalities.(dataToPlot));
p = polyfit(fatalities.(dataToPlot),rate,1);  % Calculate & plot least squares line
plot([xmin xmax], polyval(p,[xmin xmax]))

Figure contains an axes object. The axes object with xlabel urbanPopulation, ylabel Percent Fatalities per Million Vehicle Miles contains 2 objects of type scatter, line.

在美国地图上绘制死亡率与城市化率之间的关系图

汇总您的结果并将您的实时脚本与您的同事共享。通过使用您的实时脚本,您的同事可以重新创建并扩展您的分析。您也可以将分析另存为 HTML、Microsoft® Word 或 PDF 文档以供发布。

基于此分析,我们可以在美国大陆地图上使用死亡率和城市人口图汇总我们的发现。

load usastates.mat
figure
geoplot([usastates.Lat], [usastates.Lon], 'black')
geobasemap darkwater
hold on
geoscatter(fatalities.latitude,fatalities.longitude,2000*rate,fatalities.urbanPopulation,'filled')
c = colorbar;
title(c,'Percent Urban')

Figure contains an axes object with type geoaxes. The geoaxes object contains 2 objects of type line, scatter.

另请参阅

主题