MATLAB编程-简介
MATLAB 文件类型
MATLAB 使用两种主要文件类型:.m
和 .mat
文件。
-
.m
/.mat
文件:标准的 MATLAB 文件(.mat
文件中的大多数函数可被旧版本 MATLAB 支持)。 -
.mlx
文件:交互式脚本文件格式,从 MATLAB R2016a 开始引入。该格式用于保存使用 Live Script 或 Live Function 格式编写的代码。
导入函数
常用于将数据导入 MATLAB 的函数是:
importdata(filename)
importdata(filename)
可将数据加载到数组中。
示例:加载图像
>> A = importdata('example1.png');
imread(A)
加载数据
load(filename)
load
函数用于从文件中加载数据,可加载文本、图像,甚至音频文件。
示例:加载音频
>> B = load('example2.mp3');
audioread(B, single, 1.0)
load
命令用于将文件中的数据载入当前工作区。
示例命令:
-
加载
mySave.mat
中所有变量:
load('mySave.mat')
load(fullfile(pwd, 'mySave.mat'))
-
只加载特定变量:
load('mySave.mat', 'myData1', 'myData2')
load('mySave.mat', 'myData*') % 使用通配符
-
查看保存文件中的变量列表:
whos('-file', 'mySave.mat')
保存数据
save
命令用于将工作区数据保存到文件中。
示例命令:
-
保存所有变量到
mySave.mat
:
save('mySave.mat')
save(fullfile(pwd, 'mySave.mat'))
-
只保存特定变量:
save('mySave.mat', 'myData1', 'myData2')
save('mySave.mat', 'myData*') % 使用通配符
-
以 MATLAB v6 版本兼容格式保存:
save('mySave.mat', 'myData*', '-v6')
-
保存为 ASCII 文件格式:
save('mySave.mat', 'myData*', '-ASCII')
-
向已有文件追加变量:
save('mySave.mat', 'newData*', '-append')
Excel 文件读写
由于数据分析是常见用途之一,因此我们从读写电子表格开始介绍。
读取 Excel 表格
MATLAB 提供了 readcell
命令读取 Excel 文件:
假设你有一个 .xlsx
文件(推荐使用最新版 Excel 格式),例如文件 Class Marks.xlsx
内容如下:
Name | Marks |
---|---|
Ali | 93 |
Chin | 47 |
Sammy | 74 |
Dorothy | 96 |
Huat | 94 |
Anna | 38 |
读取方式如下:
A = readcell('C:\mydir\Class Marks.xlsx')
(mydir
是你保存 Excel 文件的实际路径。若不确定路径,可右键文件查看属性。)
输出如下:
A =
7×2 cell array
{'Name' } {'Marks'}
{'Ali' } {[93]}
{'Chin' } {[47]}
{'Sammy' } {[74]}
{'Dorothy'} {[96]}
{'Huat' } {[94]}
{'Anna' } {[38]}
读取 Excel 中的特定区域
假设 Excel 中的 "Class1A" 工作表中有如下数据(行列扩展为 A1:H11):
Name | English | Maths | Science | Art | Music | Malay | Moral |
---|---|---|---|---|---|---|---|
Huat | 82 | 90 | 15 | 65 | 42 | 82 | 90 |
若你只想提取 Huat 一行的数据:
B = readcell('C:\mydir\Class Marks.xlsx', 'Sheet', 'Class1A', 'Range', 'A6:H6')
此时变量 B
的值为:
B =
1×8 cell array
{'Huat'} {[82]} {[90]} {[15]} {[65]} {[42]} {[82]} {[90]}
范围(Range
)支持以下几种方式:
-
'A1'
:指定单元格 -
'A:B'
:选定列 -
'1:5'
:选定行 -
'A1:B5'
:选定矩形区域
写入 Excel 文件
使用 writecell
命令可向 Excel 文件中写入数据。
例如,要将学生 Juan 的成绩添加至 Excel 表格末尾:
B = {'Juan', 43, 67, 88, 45, 35, 92, 65}
确保文件未被其他程序(如 Excel)打开,然后运行:
writecell(B, 'C:\mydir\Class Marks.xlsx', 'Sheet', 'Class1A', 'Range', 'A12')
执行后,Juan 的数据将写入 Excel 第 12 行。
文本文件的读写(Text Files I/O)
读取文本文件
如果文件不是 Excel 表格,可以尝试使用 load
函数读取:
>> load newfile.txt
但这仅适用于完全是数字且无特殊格式的文本文件。否则会报“无法识别的字符”错误。
对于更复杂的文本格式(如不同的分隔符、混合数据类型等),你可以使用:
-
MATLAB 文件中心提供的
textread.m
-
fscanf
(前提是格式足够一致)
图形界面方式导入数据
MATLAB 也提供了图形界面导入功能:
在菜单栏中选择 File > Import Data
,然后选择数据文件(.mat
、.txt
、.xls
等),接着选择分隔符,最后点击“下一步”。
MATLAB 会将导入的变量保存为与文件名相近的名称(会自动调整使其符合语法要求),你可以在命令窗口使用 who
查看实际变量名。