f10@t's blog

Matlab编程基础

字数统计: 765阅读时长: 2 min
2022/01/19

学习一下使用MatLab如何进行编程,如函数、类、变量定义等,有助于实际MatLab项目的开发。

基本数据类型

基本数据类型

不管啥子编程语言,咱先了解人家的基本数据类型:

基本数据类型

从上图中可以看到有如下的数据类型:

  • 数字型:int8int64、uint8uint64、single、double

  • 布尔型

  • 集合型

  • 文本型:string、char、cell

  • 异构(Heterogeneous)型:timetable、structure、table、cell

  • 函数型

  • 时间型:datetime、duration、calendarDuration

其中,对于保存了同一种类型数据的数组我们称为同构(homogeneous)数据、反之为异构(heterogeneous)数据。这里着重说一下tablestructurecell三个数据结构。table和数据库里的表是一样的,同列数据类型相同,如下图所示:

celltable类似,但是没有限制每一列数据类型相同,即每一个单元的数据类型都可以不同,可以理解为一个没有指定单元类型的数组。

structure更好理解,就是包含了多种数据类型、用以描述一个具体的数据类型的数据结构,和C语言是一样的,和Java的类差不多。

文本型数据常用函数

  1. contains

  2. erase

  3. 字符连接

  4. replace

表型数据常用函数

  1. 创建一个表
1
2
3
4
5
6
% 直接创建,列名是变量名
tb1 = table(var1, var2, ...);
% 创建同时指定列名
tb2 = table(var1, var2, 'VariableNames', ['Thought1','OnSecondThought'])
% 查看表属性
tb2.Properties
  1. 表间操作
1
2
3
4
5
% 纵向(列数必须相同)、横向(行数必须相同)合并两个表
[tb1; tb2]
[tb1 tb2]
% 不同表join操作
tb3 = join(tb1, tb2, "Keys", ["Id_1", "Id_2"])
  1. 从表中获取数据

如下图所示,若需要获取表中一部分数据,我们只需要通过索引、切片的方法来获取就可以了,如t2 = t1(6:15, [1 5 end-1:3nd])指的就是获取t1表中第6行到第15行中第1列、第5列、倒数后两列的内容。可以看到matlab对于这种类矩阵的计算还是肥肠方便的。

image-20220125192334259

我们看一个例子,比如我们要获取下表中所有关于丰田的汽车信息:

image-20220125194253605

我们可以这样:

1
2
3
% 先获取第一列的所有数据,使用contains获取索引向量
Idx = contains(fleet.Make, "Toyota")
fleet(Idx, :)
image-20220125194320085

而如果说你要提取多个列的数据(不包含列名),那么就要使用花括号了:

1
2
% 提取1到3列数据
fleet{:, 1:3}
image-20220125200310741
  1. 向表中添加新列

直接赋值就可以了,新列的名字就是.操作符后自定义的名字:

1
2
Area = fleet.Length .* fleet.Width
fleet.Area = Area

集合型数据常用函数

也就是Cell Array,我想叫他集合型,是因为他就是花括号一括,里面数据类型无需一致。一个集合型数据定义如下:

1
2
3
4
5
6
car = {'Ford','Expedition';32.7,true}
% 输出:
% 2×2 cell array
%
% {'Ford' } {'Expedition'}
% {[32.7000]} {[ 1]}

CATALOG
  1. 1. 基本数据类型
    1. 1.1. 文本型数据常用函数
    2. 1.2. 表型数据常用函数
    3. 1.3. 集合型数据常用函数