MATLAB 2018b 安装教程:https://blog.csdn.net/u012180635/article/details/84345957
MATLAB 入门教程:https://ww2.mathworks.cn/help/matlab/index.html
chapter 2
MATLAB基础知识
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室),MATLAB的基本数据单位是矩阵。
- 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
- 具有完备的图形处理功能,实现计算结果和编程的可视化;
- 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
- 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
桌面基础知识
桌面包括以下面板:当前文件夹;命令行窗口;工作区
创建变量
>> a = 1
a =
1
>> a = 1;
>> d = cos(a)
d =
0.5403
>> cos(a)
ans =
0.5403
数据类型
矩阵和数组
创建矩阵(要创建包含多行的矩阵,用分号分隔各行)
>> a = [1,2; 3,4]
a =
1 2
3 4
>> a = [1 2; 3 4]
a =
1 2
3 4
>> % 数组索引
>> a(1,1)
ans =
1
>> a(3)
ans =
2
>> a(1:2,2)
ans =
2
4
使用ones、zeros或rand等函数创建矩阵
矩阵和数组运算
% a'为a的转置;c = a^2 等价于 c = a*a
>> b = a'*a
b =
10 14
14 20
>> c = a^2
c =
7 10
15 22
元胞数组
可以包含各种类型和大小的数据的数组
用cell函数创建元胞数组:
>> c = cell(3,1);
>> c{1} = 'string';
>> c{2} = false;
>> c{3} = [1 2; 3 4];
>> b = c(1:2);
>> celldisp(b)
b{1} =
string
b{2} =
0
主要函数:
结构体
带有可以包含各种类型和大小的数据的命名字段的数组
在向其分配字段之前,不需要初始化数据结构,但最好这样做,尤其是在脚本中,以避免变量冲突。
>> d = struct;
>> d.fieldName = 0;
用函数初始化结构体:
MyStruct.m:
function d = MyStruct
d = struct;
d.a = 1.0;
d.b = 'string';
test.m:
d = MyStruct;
d(2) = MyStruct;
d(3) = MyStruct;
field = 'a';
values = {d.(field)};
result:
values =
1×3 cell 数组
{[1]} {[1]} {[1]}
>> d = struct
d =
不包含字段的 struct。
>> isempty(d)
ans =
logical
0
主要函数:
数值类型
整数和浮点数据
图像
在 MATLAB 工作区中,大多数图像表示为二维数组(矩阵),其中矩阵的每个元素对应所显示图像的一个像素。例如,由 200 行和 300 列不同颜色的点组成的图像保存为一个 200×300 的矩阵。有些图像,如 RGB,需要三维数组,其中三个维度的第一个平面表示红色像素强度,第二个平面表示绿色像素强度,第三个平面表示蓝色像素强度。
读取、写入、显示和修改图像
显示图像:
读取、写入和修改图像:
转换图像类型:
datastore
为大型数据集合创建数据存储
ds = datastore(location) 根据 location 指定的数据集合创建一个数据存储。数据存储是一个存储库,用于收集由于体积太大而无法载入内存的数据。创建 ds 后,您可以读取并处理数据。
>> location = pwd
location =
'C:\Users\Ketone Olefine\AppData\Roaming\MathWorks\MATLAB Add-Ons\Toolboxes\MachineLearning\Cats'
>> ds = datastore(location)
ds =
ImageDatastore - 属性:
Files: {
' ...\MathWorks\MATLAB Add-Ons\Toolboxes\MachineLearning\Cats\IMG_0191.png';
' ...\MathWorks\MATLAB Add-Ons\Toolboxes\MachineLearning\Cats\IMG_1603.png';
' ...\MathWorks\MATLAB Add-Ons\Toolboxes\MachineLearning\Cats\IMG_1625.png'
... and 8 more
}
AlternateFileSystemRoots: {}
ReadSize: 1
Labels: {}
ReadFcn: @readDatastoreImage
每种类型的数据存储都具有不同的属性。
-
DatabaseDatastore需要数据库工具箱,并允许您使用SQL查询。
-
MATLAB提供了MapReduce框架,用于处理数据存储区中的内存不足数据。
tall 数组
行数太多而无法载入内存的数组
tall 数组能够处理可包含数百万或数十亿行数据的数据存储中的数据。您可以创建 tall 数值数组、元胞数组、分类、字符串、日期时间、持续时间或日历持续时间,还可以在 tall 表或 tall 时间表中使用上述任一 tall 类型作为变量。许多运算和函数使用与处理可放入内存的 MATLAB® 数组相同的方式处理 tall 数组,但仅在您使用 gather 显式请求计算时才会真正计算大多数结果。
稀疏矩阵
稀疏矩阵能够有效地存储零元素百分比很高的 double 或 logical 数据。
满矩阵(或稠密矩阵)会将每个元素都存储在内存中(不管值如何),而稀疏矩阵仅存储非零元素及其行索引。因此,使用稀疏矩阵可极大地减少存储数据所需的内存量。
表格与分类数组
https://ww2.mathworks.cn/videos/tables-and-categorical-arrays-in-release-2013b-101607.html
MAT-Files
m = matfile(filename)
创建 MAT 文件对象 m,该对象连接到名为 filename 的 MAT 文件。该对象允许您直接访问和更改 MAT 文件中的变量,而不必将变量加载到内存中。
chapter 3
3.1 2D line Plots
- 知识梳理:
创建二维线图
example:
使用 linspace 函数将 x 定义为由 0 和 之间的 100 个线性间隔值组成的向量。
>> x = linspace(0,2*pi,100);
>> y = sin(x);
>> figure
>> plot(x,y);
使用 linspace 函数将 x 定义为由 0 和 之间的 5 个线性间隔值组成的向量。
>> x = linspace(0,2*pi,5);
>> y = sin(x);
>> figure
>> plot(x,y);
绘制多个线条:
x = linspace(0,2*pi,100);
y1 = sin(x);
y2 = sin(x-pi/4);
figure
plot(x,y1,x,y2)
向图形添加标题、坐标轴标签和图例
使用 title、xlabel、ylabel 和 legend 函数向图表添加标题、轴标签和图例。
title('string');
xlabel('string');
ylabel('string');
legend('y=cos(x)','y=sin(x)');
合并多个绘图
在同一坐标区中合并绘图
使用子图在图窗中创建多个坐标区
3.2 General 2D Graphics
MATLAB 绘图类型
https://ww2.mathworks.cn/help/matlab/creating_plots/types-of-matlab-plots.html
勘误:
figure('Name','My figure name');