1.xlsread函数

假设数据集data
%清空变量
clc
clear
%读取数据
data = xlsread('data.xlsx');
运行后会返回A列的数值型数据
%读取特定工作表的数据
data = xlsread('data.xlsx', 'Sheet1');
%读取特定工作表的特定范围的数据
data = xlsread('data.xlsx', 'Sheet1', 'A1:C3');
运行后会返回A列和C列的数值型数据
%读取数值数据、文本和原始数据
[num, txt, raw] = xlsread('data.xlsx');
num
包含数值数据[1.1; 4.1; 7.1]
txt
包含文本数据{'Text1'; 'Text2'; 'Text3'}
raw
包含所有数据,包括数值和文本{'1.1', 'Text1', '3.1'; '4.1', 'Text2', '6.1'; '7.1', 'Text3', '9.1'}
xlsread函数的注意事项:
(1)兼容性:xlsread
适用于 Windows 平台并且需要安装 Microsoft Excel。
(2)落后性:在较新的 MATLAB 版本中,xlsread函数有时会出错,因此,新版本里,例如matlab2023,不推荐使用xlsread
2.readtable函数
% 读取 CSV 文件
T = readtable('data.csv');
% 读取指定的工作表和范围的 Excel 文件
T = readtable('data.xlsx', 'Sheet', 'Sheet1', 'Range', 'A1:C10');
%用于读取表格数据文件,如 CSV、Excel 文件等,并返回一个“表格”。
3.load函数
%1. excel转mat
% 指定 Excel 文件名
filename = 'v0data.xlsx';
% 读取 Excel 文件
data0= readtable(filename);
% 指定要保存的文件名
mat_filename = 'v0data.mat';
% 保存数据为 .mat 格式文件
save(mat_filename, 'data');
%2. 加载所有变量
load('v0data.mat');
%3.加载指定变量
load('v0data.mat', 'var1', 'var2');
4.readcell、importdata和readmatrix函数
% 读取 CSV 文件
M = readmatrix('data.csv');
% 读取指定的工作表和范围的 Excel 文件
M = readmatrix('data.xlsx', 'Sheet', 'Sheet1', 'Range', 'A1:C10');
%用于读取数值数据文件,如 CSV、Excel 文件等,并返回一个"矩阵"。
% 读取 CSV 文件
C = readcell('data.csv');
% 读取 Excel 文件
C = readcell('data.xlsx', 'Sheet', 'Sheet1', 'Range', 'A1:C10');
%用于读取文件中的混合类型数据,并返回一个单元数组。
% 读取文本文件
data = importdata('data.txt');
% 读取 CSV 文件
data = importdata('data.csv');
%用于读取多种格式的数据文件,包括文本、CSV、和 .mat 文件等。
5.textscan函数
%假设我们有一个名为 data.txt 的文本文件,内容如下:
%1.1,Text1,3.1
%4.2,Text2,6.2
%7.3,Text3,9.3
%标准用法
fileID = fopen('filename.txt','r');
data = textscan(fileID, formatSpec);
%fileID: 文件标识符,由 fopen 返回。
%formatSpec: 格式说明符,指定如何解析文件中的数据。
fclose(fileID);
%以data.txt为实例
%读取每一列的数据,并将其存储在不同的变量中。
% 打开文件
fileID = fopen('data.txt', 'r');
% 按格式读取数据
data = textscan(fileID, '%f %s %f', 'Delimiter', ',');%以","作为分隔符将数据分列
% 关闭文件
fclose(fileID);
% 提取各列数据
col1 = data{1}; % 第一列浮点数
col2 = data{2}; % 第二列字符串
col3 = data{3}; % 第三列浮点数
输出结果如下:
第一列:
1.1000
4.2000
7.3000
第二列:
'Text1'
'Text2'
'Text3'
第三列:
3.1000
6.2000
9.3000
如果txt内容为:
1.1 | Text1 | 3.1
4.2 | Text2 | 6.2
7.3 | Text3 | 9.3
则代码修改为:
% 打开文件
fileID = fopen('data.txt', 'r');
% 按格式读取数据
data = textscan(fileID, '%f %s %f', 'Delimiter', ' | ');
% 关闭文件
fclose(fileID);
6.table2array函数
data= table2array(readtable('data.xlsx'));
将table格式数据转换成double