许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MATLAB机器学习实战:Recipes案例集

MATLAB机器学习实战:Recipes案例集

阅读数 6
点赞 0
article_banner

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的基本数据单位是矩阵。

  1. 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
  2. 具有完备的图形处理功能,实现计算结果和编程的可视化;
  3. 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
  4. 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

桌面基础知识

在这里插入图片描述

   桌面包括以下面板:当前文件夹;命令行窗口;工作区

创建变量

>> 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');



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空