Main Content

导入数据

从实时编辑器中的文件导入数据

自 R2023a 起

说明

通过导入数据任务,您能够以交互方式导入 MAT、文本、电子表格、媒体(图像、音频和视频)和科学数据(HDF5 和 netCDF)文件。该任务会自动为您的实时脚本生成 MATLAB® 代码。

Import Data task in the Live Editor

打开任务

要在 MATLAB 编辑器中将导入数据任务添加到实时脚本中,请执行以下操作:

  • 实时编辑器选项卡上,选择任务 > 导入数据

  • 在脚本的代码块中,键入相关关键字,例如 importreadload。从建议的命令自动填充项中选择 Import Data

示例

全部展开

以交互方式从图像文件中导入数据。

在实时编辑器中打开导入数据任务。选择源文件,然后在显示结果部分中选择导入的数据选项以显示图像。该任务将图像数据保存在工作区的一个变量中。变量名称基于源文件的名称。

Import Data task

要查看此任务生成的代码,请点击任务参数区域底部的显示代码展开任务显示。

% Import image
cloudCombined = imread("<path_to_file>\cloudCombined.jpg");

% Display results
imshow(cloudCombined);
title("Image Data From cloudCombined.jpg");

Imported image data showing clouds

以交互方式生成可重用的 MATLAB 代码,以将一个 Microsoft® Excel® 电子表格导入您的工作区中。该电子表格包含马萨诸塞州波士顿 2021 年 1 月的天气数据。使用生成的代码作为模板,以编程方式导入 2021 年所有 12 个月的电子表格。

在实时编辑器中打开导入数据任务。在文件字段中输入第一个电子表格的文件名 01_weather.xlsx

Import Data task

要查看此任务生成的代码,请点击任务参数区域底部的显示代码展开任务显示。

% Set up the Import Options and import the data
opts = spreadsheetImportOptions("NumVariables", 12);

% Specify sheet and range
opts.Sheet = "3179575";
opts.DataRange = "A2:L32";

% Specify column names and types
opts.VariableNames = ["STATION", "NAME", "LATITUDE", "LONGITUDE", "ELEVATION", "DATE", "AWND", "PRCP", "SNOW", "TAVG", "TMAX", "TMIN"];
opts.VariableTypes = ["categorical", "categorical", "double", "double", "double", "datetime", "double", "double", "double", "double", "double", "double"];

% Specify variable properties
opts = setvaropts(opts, ["STATION", "NAME"], "EmptyFieldRule", "auto");

% Import the data
x01_weather = readtable("<path_to_file>\01_weather.xlsx", opts, "UseExcel", false);

% Clear temporary variables
clear opts

生成的代码分成几个步骤,并用注释提供文档说明。进行以下更改以自动导入所有 12 个月的电子表格:

  1. 创建一个 yearWeather 表,您可以将每个月的电子表格中的数据追加到该表中。

  2. 创建一个包含表示每个月的字符串的 namePrefixes 向量。

  3. 使用 namePrefixes 创建一个文件名向量。使用十二个文件名的常规模式。

  4. 根据每个月的天数创建一个由若干数据范围组成的向量。在生成的代码中,范围跨 A 列到 L 列、第 2 行到第 32 行(比一月的天数大 1)。

  5. 使用 for 循环和您创建的变量导入所有文件,并将它们追加到 yearWeather 中。

% Changes #1 and #2: Create variables
yearWeather = table();
namePrefixes = ["01" "02" "03" "04" "05" "06" "07" "08" "09" ...
                "10" "11" "12"];

% Set up the Import Options and sheet
opts = spreadsheetImportOptions("NumVariables", 12);
opts.Sheet = "3179575";

% Specify column names and types
opts.VariableNames = ["STATION", "NAME", "LATITUDE", "LONGITUDE", ...
                      "ELEVATION", "DATE", "AWND", "PRCP", "SNOW", ...
                      "TAVG", "TMAX", "TMIN"];
opts.VariableTypes = ["categorical", "categorical", "double", ...
                      "double", "double", "datetime", "double", ...
                      "double", "double", "double", "double", "double"];

% Specify variable properties
opts = setvaropts(opts, ["STATION", "NAME"], "EmptyFieldRule", "auto");

% Changes #3 and #4: Create vectors of filenames and data ranges
fileNames = namePrefixes + "_weather.xlsx";
dataRanges = "A2:L"+string(day(datetime(2021,1,31)+calmonths(0:11))+1);

% Change #5: Import all files and append them in yearWeather
for i = 1:length(namePrefixes)
    fileName = fileNames(i);
    opts.DataRange = dataRanges(i);

    monthWeather = readtable(fileName, opts, "UseExcel", false);
    yearWeather = [yearWeather; monthWeather];
end

% Clear temporary variables
clear opts

使用导入的数据绘制 2021 年波士顿每天的低温和高温。

plot(yearWeather.DATE,[yearWeather.TMIN yearWeather.TMAX])
hold on
xlabel("Date")
ylabel("Temperature (℉)")
legend("Low Temperature","High Temperature",location="Northwest")

Graph of temperatures

相关示例

参数

全部展开

选择源

您可以输入路径或使用浏览按钮。您选择导入的文件的类型确定在该任务中您可以选择的其他参数。

导入电子表格文件时,选择要导入的工作表。

指定导入的变量选项

导入文本文件或电子表格时,您可以选择导入的数据的 MATLAB 数据类型:

  • - 数据作为 MATLAB 表导入。数据的每列是表的一个变量,数据的每行是表的一行。表的变量名称派生自数据的列标题。

  • 时间表 - 数据作为 MATLAB 时间表导入。如果数据的第一列不是 datetimeduration 类型,则表中会前追加一个包含 duration 值的列作为新的第一列,对于数据的每行,该表从 0 开始,并且按 1 递增。

  • 列向量 - 数据作为 MATLAB 列向量导入。数据的每列都成为一个列向量,每个列向量变量的名称都派生自数据的对应列的标题。

  • 数值数组 - 数据作为数值矩阵导入。

  • 字符串数组 - 数据作为字符串矩阵导入。

  • 元胞数组 - 数据作为元胞矩阵导入。

如果选择此选项,则默认情况下,任务会在名为 opts 的变量中保留导入选项。如果不选择此选项,则 opts 变量将在导入完成后被清除。此参数在导入文本文件或电子表格时可用。

显示结果

选择此选项可将导入的数据显示为实时编辑器任务的输出。

如果选择此选项,则您的导入选项将显示为实时编辑器任务的输出。如果不选择此选项,则导入选项不会出现。此参数在导入文本文件或电子表格时可用。

局限性

  • 导入数据任务不支持从使用 Family 驱动、Multi 驱动或 Split 驱动的 HDF5 文件中导入数据。要从使用这三个驱动之一的文件中导入数据,请使用 MATLAB 高级 HDF5 函数(例如 h5readh5readatt)或 MATLAB 低级 HDF5 函数。

版本历史记录

在 R2023a 中推出

全部展开