Matlab数据读写(针对Excel)
数据读写
读取excel表的数据
xlsread
对表格前⼏个含有⾮数值的⾏(列)直接忽略,不算⼊数据区域;另外如果在数据区域中含有⾮数值的单元,将其处理为NaN 简⽽⾔之, 只读数值, 不读字符串或者其他格式的数据
% 读取名为 filename 的 Microsoft® Excel® 电⼦表格⼯作表中的第⼀个⼯作表,并在⼀个矩阵中返回数值数据。
num = xlsread(filename)
半纤维素% sheet 指定⼯作表, 为⼯作表的名称(字符串)或者索引(正整数)
% xlRange指定数据范围, 使⽤ Excel 范围语法,例如 'A1:C3'。
num = xlsread(filename,sheet,xlRange)
% num 同上返回值, 即只有数值和NaN, ⾃动筛去边缘⾮数值数据
% txt 元胞数组, 包含选中的所有⾮数值数据 (数值数据保存为 0*0 char)
[num,txt,raw] = xlsread(...)
⽰例
[num,txt,raw]=xlsread('C:/Urs/zynxs/Desktop/test.xlsx')
importdata
读取 excel 时, 读取到的数据与 xlsread 的 num, txt 相同, 以 struct 格式返回
readcell
读取 excel 时, 读取到的数据与 xlsread 的 raw 相同
readtable
返回 table 格式
T = readtable(filename) % 数值, ⽇期(?)
% 正常读取字符串置为 1*1 元胞数组来读取
T = readtable(filename,opts)
导⼊选项对象 spreadsheetImportOptions :
opts = spreadsheetImportOptions('NumVariables',numVars); % numVars设置列数
变量属性
VariableNames变量名称
SelectedVariableNames要导⼊的变量⼦集名称
VariableTypes变量的数据类型
VariableOptions类型特定的变量导⼊选项
VariableNamingRule保留变量名称的标志统计工作
数据类型:
cell | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | categorical (分类类型) | datetime
位置属性
Sheet要从中读取数据的⼯作表
DataRange数据的位置
RowNamesRange⾏名称的位置
VariableNamesRange变量名称的位置
VariableDescriptionsRange变量描述的位置
VariableUnitsRange变量单位的位置
代码⽰例
语文课标% 创建导⼊选项变量(列数)为 8
opts = spreadsheetImportOptions("NumVariables", 8);
% 指定⼯作表
受宠若惊近义词opts.Sheet = "进项发票信息";
% 指定数据范围
opts.DataRange = "A2:H210948";
% 设定列的名称, 选中列的名称(前者⼦集, 默认全部)
opts.VariableNames = ["QYDH1", "Var2", "KPRQ1", "Var4", "JE1", "SE1", "JSHJ1", "FL1"];
opts.SelectedVariableNames = ["QYDH1", "KPRQ1", "JE1", "SE1", "JSHJ1", "FL1"];
% 指定列的数据类型
opts.VariableTypes = ["string", "char", "datetime", "char", "double", "double", "double", "categorical"];
%指定变量属性
opts = tvaropts(opts, ["QYDH1", "Var2", "Var4"], "WhitespaceRule", "prerve"); % 保留前后空格
opts = tvaropts(opts, ["QYDH1", "Var2", "Var4", "FL1"], "EmptyFieldRule", "auto"); % 空字段采取⾃动赋值(⼤概是默认值?)
笑谈人生opts = tvaropts(opts, "KPRQ1", "InputFormat", ""); % 输⼊⽂本格式, 此处似乎有疑问, 好像没什么⽤的样⼦
%导⼊数据
tb1 = readtable("C:/Urs/zynxs/Desktop/2021国赛/2020C/Data/Initial/附件1:123家有信贷记录企业的相关数据.xlsx", opts, "UExcel", fal);
father翻译将数据写⼊⽂件
writetable
writetable(C,filename); %C为变量, filename为写⼊的⽂件名(不存在则⾃动创建)
国产最好的手机排名第一>不紧不慢的意思
writetable(___,Name,Value); % Name包含 Sheet, Range 等等