2 语言基础

  • 2.1 矩阵与方阵
    • 2.1.1 矩阵
    • 2.1.2 输入矩阵
    • 2.1.3 求和,转置和对角线转列向量函数
    • 2.1.4 矩阵函数
    • 2.1.5 矩阵的产生
  • 2.2 表达式
    • 2.2.1 变量
    • 2.2.2 数字
    • 2.2.3 矩阵运算
    • 2.2.4 数组运算符
    • 2.2.5 构建表格
    • 2.2.6 函数
    • 2.2.7 表达式使用举例
  • 2.3 输入命令
    • 2.3.1 格式化输出显示
    • 2.3.1 减少输出冗余
    • 2.3.2 输入长表达式
    • 2.3.3 编辑命令行
  • 2.4 运算符
    • 2.4.1 下标
    • 2.4.2 冒号运算符
    • 2.4.3 联结运算符
    • 2.4.4 删除行和列
    • 2.4.5 标量扩展
    • 2.4.6 逻辑下标
    • 2.4.7 查找函数
  • 2.5 数组的类型
    • 2.5.1 多维数组
    • 2.5.2 单元数组

2.1 矩阵与方阵

Matrices and Magic Squares

2.1.1 矩阵

在 MATLAB 环境中,矩阵是一个由许多数字组成的矩形数组。1乘1矩阵是特殊的矩阵,它是标量。而只有一行或一列的矩阵,它是向量。MATLAB 还有其他存储数值和非数值数据的方法,但刚开始接触软件时,最好将所有东西都看作一个矩阵。我们把 MATLAB 中的操作设计得尽可能符合你的习惯。当其他编程语言一次只能处理一个数字时,MATLAB 帮助您快速轻松地处理整个矩阵。这本书中使用一个很好的例子矩阵,它是出于德国艺术家和业余数学家 Albrecht Durer之手的文艺复兴时期 Melencolia I 这幅画中。

这幅图是用数学符号表示的,如果你仔细看,你会在右上角看到一个矩阵。这个矩阵被称为方阵,在 Dürer 的时代,很多人认为它具有真正的魔法属性。它确实有一些迷人的特征值得探索。

2.1.2 输入矩阵

快速入门 MATLAB 的最好方法是学习处理矩阵,并学习每个例子。
你可以用几种不同的方法在MATLAB中输入矩阵:

  • 输入一个显式的元素列表。
  • 从外部数据块加载矩阵。
  • 使用内置函数生成矩阵。
  • 用自己的函数创建矩阵,并将它们保存在文件中。

首先输入 Dürer 矩阵的元素列表。你只需要遵循一些基本的惯例:

  • 用空格或英文逗号分隔一行中的元素。
  • 使用英文分号 ; 表示每一行的末尾。
  • 用方括号[]包围整个元素列表。

要输入 Dürer 矩阵,只需在命令窗口中键入以下一串代码即可:

A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

MATLAB 显示您刚刚输入的矩阵:

A =16 3  2  135  10 11 89  6   7  124  15 14 1

这个矩阵与 Dürer 矩阵的数字相匹配。一旦您输入了矩阵,它就会自动地被存储在 MATLAB 工作空间中。你可以简单地标记它为 A
现在您已经在工作区中有了一个 A,接下来看看是什么让它如此有趣,为什么是方阵(magic)?

2.1.3 求和,转置和对角线转列向量函数

sum, transpose 和 diag
您可能已经意识到方阵与求和元素的各种方法有关的特殊性质。如果沿着任意行或列、或沿着两个对角线中的任意一个方向求和,总是会得到相同的数。
让我们用 MATLAB 来验证一下。要尝试的第一个语句是:

sum(A)

MATLAB 返回结果:

ans =34 34 34 34

当不指定输出变量时,MATLAB 默认使用变量 ans (answer 的缩写)存储计算结果。您已经计算了一个行向量,其中包含 a 的列的和。每一列都有相同的和,即方阵的和:34。

如果对行求和呢? MATLAB 更偏好处理矩阵的列,所以对行求和一种方法是转置矩阵,对计算转置矩阵的列求,然后再转置结果得到答案。

MATLAB 有两个转置运算符号:

“撇号”运算符(例如,A’ )执行复共轭换位。它使一个矩阵围绕主对角线翻转,并且改变了矩阵中任意一个复杂元素的虚分量的符号。

点撇号运算符(例如 A.’ )在不影响复杂元素符号的情况下进行转置。对于包含所有实数元素的矩阵,这两个操作符返回相同的结果。

因此当输入:

A'

结果是:

ans =16 5  9   43  10 6  152  11 7  1413 8 12 1

当输入:

sum(A')'

结果是只有一行的列向量:

 ans =34343434

要想避免两次转置的行来求和的另一种方法是使用 sum 函数的多维参数方法:

sum(A,2)

结果是:

ans =34343434

主对角线上元素的求和方法由 sumdiag 函数组合使用得到的:

diag(A)

结果是:

ans =161071

然后:

sum(diag(A))

结果是:

ans =34

您已经验证了 Dürer 版画中的矩阵确实是一个方阵(a magic square),并且在此过程中,已经练习了一些 MATLAB 的矩阵运算。下面的部分将继续使用这个矩阵来说明 MATLAB 的其他功能。

2.1.4 矩阵函数

MATLAB 实际上有一个内置函数,可以创建几乎任何大小的方阵,因此,这个函数被命名为 magic

B = magic(4)
B =16 2   3  135  11 10 89  7   6  124  14 15 1

这个矩阵几乎和 Dürer 版画上的一样,而且都有“ magic ”(方阵)的性质;唯一的区别是中间的两列交换了位置。
你可以把 B 方阵的中间两列互换位置,变成 Dürer A 方阵。方法是:把 B 方阵的每一行按 1、3、2、4 的顺序重新排列列:

A = B(:,[1 3 2 4])
A =16 3   2 135  10 11 89  6   7  124 15 14 1

2.1.5 矩阵的产生

MATLAB 软件提供了四个生成基本矩阵的函数。
zeros 所有元素都为 0 ;
ones 所有元素都为 1 ;
rand 均匀分布随机元素;
randn 正态分布随机元素。
下面举一些例子:

Z = zeros(2,4)
Z =0 0 0 00 0 0 0F = 5*ones(3,3)
F =5 5 55 5 55 5 5N = fix(10*rand(1,10))
N =9 2 6 4 8 7 4 0 8 4R = randn(4,4)
R =0.6353  0.0860 -0.3210 -1.2316-0.6014 -2.0046  1.2366  1.05560.5512 -0.4931 -0.6313 -0.1132-1.0998  0.4620 -2.3252  0.3792

2.2 表达式

2.2.1 变量

与大多数其他编程语言一样,MATLAB 语言提供数学“表达式”,但与大多数编程语言不同的是,这些表达式是对整个矩阵进行运算的。

MATLAB 不需要任何类型声明或指明多少维度语句。当 MATLAB 遇到一个新的变量名时,它会自动创建该变量并分配适当的存储空间。如果变量已经存在,MATLAB将更改其内容,并在必要时分配新的存储空间。例如:

num_students = 25

这句表达式的作用是创建一个名为 num_students 的 1×1 矩阵,并将值 25 存储在其单个元素中。要查看分配给任何变量的矩阵,只需输入变量名即可。

变量名由字母加任意个数的字母、数字或下划线构成,区分大小写。例如:Aa 不是同一个变量。

虽然变量名可以是任意长度,MATLAB 只使用名称的前 N 个字符(其中 N 是函数 namelengthmax 返回的数字),而忽略了其余的字符。因此,每个变量名的前 N 个字符构成的名称必须是是唯一的,以便 MATLAB 能够区分变量。

N = namelengthmax
N =63

2.2.2 数字

MATLAB 使用十进制记数法,数字可以是小数,也可以是负数。科学计数法表示方法是使用字母 e 接数字来表示10的多少次方。虚数可以用 ij 作为后缀。下面一些有效的数字例子:

3            -99             0.0001
9.6397238   1.60210e-20     6.02252e23
1i          -3.14159j       3e5i

MATLAB 使用 IEEE® 指定的浮点标准,即使用 long (长数据)格式存储所有数字。浮点数的最大精度约为 16 位十进制数字,数据范围约为 10-308 到 10+308

double (双精度)格式表示的数字的最大精度为 52 位(bit)。任何超过 52 位的双精度浮点数都会丢失一些精度。例如,下面的代码判定了两个不相等的值相等,因为它们都被截断了:

x = 36028797018963968;
y = 36028797018963972;
x == y
ans =1

Integers (整数)具有 8 位、16 位、32 位和 64 位精度。存储与 64 位整数相同的数字可以一直保持精度:

x = uint64(36028797018963968);
y = uint64(36028797018963972);
x == y
ans =0

MATLAB 软件存储复数的实部和虚部。它根据不同情况以不同的方式处理实部和虚部。例如,sort 函数根据大小进行排序,并根据相位角确定大小关系:

sort([3+4i, 4+3i])
ans =4.0000 + 3.0000i 3.0000 + 4.0000i

这是因为相位角不同:

angle(3+4i)
ans =0.9273
angle(4+3i)
ans =0.6435

“等号”关系运算符 == 要求实部和虚部相等。其他二进制关系运算符 > <>=<= 忽略数字的虚数部分,只考虑实数部分。

2.2.3 矩阵运算

使用常见的算术运算符和优先级规则完成表达式。

+
-
*
/
\ 左除
^
转置共轭复数
( ) 指定求值顺序

2.2.4 数组运算符

当不再使用线性代数的矩阵方式表示有规律的数据集合时,它们就变成了二维的数值数组。数组的算术运算是逐元素进行的,这意味着数组和矩阵的加法和减法运算是相同的,但是乘法运算是不同的。MATLAB 使用一个点或小数点作为数组的乘法运算符。

具体操作符如下:

+
-
.* 逐元素相乘
./ 逐元素相除
.\ 逐元素左除
.^ 逐元素幂
.' 非结合的数组转置

如果 Dürer 方阵与数组乘法相乘

A.*A

结果是一个数组,包含从 1 到 16 的整数的平方,但以不一样的方式排列:

ans =256 9    4    16925  100 121 6481  36   49   14416  225 196 1

2.2.5 构建表格

数组操作对于构建表格非常有用。假设n是列向量

n = (0:9)';

然后,

pows = [n n.^2 2.^n]

构建一个由2的平方和幂组成的表:

pows =0   0    11     1    22     4    43     9    84    16   165    25   326    36   647    49  1288    64  2569    81  512

初等数学函数逐元素对数组进行运算。因此

format short g
x = (1:0.1:2)';
logs = [x log10(x)]
builds a table of logarithms.
logs =
1.0 01.1     0.041391.2  0.079181.3  0.113941.4  0.146131.5  0.176091.6  0.204121.7  0.230451.8  0.255271.9  0.278752.0  0.30103

2.2.6 函数

MATLAB 提供了大量的标准初等数学函数,包括 abssqrtexpsin。对负数开平方根或取对数不会出现错误,MATLAB 会显示其复数结果。
MATLAB 还提供了许多更高级的数学函数,包括贝塞尔函数和伽玛函数。这些函数中的大多数都接受复数参数。基本数学函数列表,键入

help elfun

对于更高级的数学和矩阵函数列表,键入

help specfun
help elmat

有些函数是内置的,比如 sqrtsin ,它们是 MATLAB 内核的一部分,所以它们运行非常高效,但计算细节不容易获得。其他函数是用 MATLAB 编程语言实现的,因此可以访问它们的计算细节。

内置函数和其他函数之间有一些区别。例如,对于内置函数,您不能看到它们的代码。对于其他函数,您不仅可以查看代码,甚至可以修改它。

以下是几个特殊函数,它们提供常用的常数的值。

pi 3.14159265…
i 虚数单位, −1
j 与 i 相同
eps 浮点相对精度, ε = 2−52
realmin 最小的浮点数, 2−1022
realmax 最大的浮点数, (2 − ε)21023
Inf 无穷大
NaN 无定义

Infinity 是通过将一个非零值除以零,或者计算经过专门设计的数学表达式溢出(overflow,即超过 realmax)时生成的。Not -a-number 是通过尝试计算像 0/0Inf-Inf 这样的表达式来生成的,这些表达式没有定义数学值。

MATLAB 并未保留函数名。我们可以用一个新值覆盖它们,比如

eps = 1.e-6

然后在后面的计算中使用这个值。原来的功能可以用以下表达式恢复:

clear eps

2.2.7 表达式使用举例

在前面的讲解中您已经看到了 MATLAB 表达式的几个示例。下面是其他一些例子以及它们的运算的结果:

rho = (1+sqrt(5))/2
rho =1.6180a = abs(3+4i)
a =5z = sqrt(besselk(4/3,rho-i))
z =0.3730+ 0.3214ihuge = exp(log(realmax))
huge =1.7977e+308toobig = pi*huge
toobig =Inf

2.3 输入命令

2.3.1 格式化输出显示

format 函数控制数据的显示格式。该函数只影响数字的显示方式,而不影响 MATLAB 软件计算或保存数字的方式。下面是不同的输出格式,以及由带有不同数量级值的矢量 x 产生的输出结果。

注意,为了确保适当的间距,请使用 fixed-width 字体,例如 Courier

x = [4/3 1.2345e-6]
format short1.3333  0.0000format short e1.3333e+000    1.2345e-006format short g1.3333     1.2345e-006format long1.33333333333333  0.00000123450000format long e
1.333333333333333e+000     1.234500000000000e-006format long g1.33333333333333     1.2345e-006format bank1.33  0.00format rat4/3   1/810045format hex3ff5555555555555  3eb4b6231abfd271

如果矩阵的最大元素大于103或小于10-3,MATLAB 对短格式和长格式使用一个通用的比例因子。

除了上面显示的 format 函数之外,format compact 还会减少输出结果中出现的许多空白行。这便于您在显示屏幕或窗口上查看更多信息。如果希望对输出格式有更多的控制,请使用 sprintffprintf 函数。

2.3.1 减少输出冗余

如果您只是简单地输入一个表达式并按 ReturnEnter 键, MATLAB 会自动在屏幕上显示结果。但是,如果以分号结束行,MATLAB 将执行计算,但不显示任何输出。这在生成大型矩阵时特别好用。例如:

A = magic(100);

2.3.2 输入长表达式

如果表达式不在一行上,使用省略号(三个点),,然后返回或回车,以指示语句在下一行。例如:

s = 1 -1/2 + 1/3 -1/4 + 1/5 - 1/6 + 1/7 ...- 1/8 + 1/9 - 1/10 + 1/11 - 1/12;

=+- 号周围的空格是可有可无的,但是它们让程序整齐、便于阅读。

2.3.3 编辑命令行

键盘上的各种箭头和控制键帮助您回忆、编辑和重新使用前面输入的语句。例如,假设您输入发生了错误:

rho = (1 + sqt(5))/2

你把 sqrt 拼写错了,MATLAB 会说明错误:输入参数类型为 “double” 的函数 “sqt” 是未定义的。

不需要再重新键入整行,只需要按 键即可重新显示您键入的语句。使用 键将光标移到上面并插入缺失的字母 r 。重复使用 键会继续显示更早输入的表达式。输入几个字符,然后按下 键,可以找到那些以这些字符开头的表达式。还可以从命令历史记录中复制以前执行的语句。

2.4 运算符

2.4.1 下标

的第 i 行和第 j 列中的元素用 A(i,j) 表示。例如,A(4,2) 是第 4 行和第 2 列中的数字。对于方阵,A(4,2) 等于 15。要计算 A 的第四列元素的和,输入:

A(1,4) + A(2,4) + A(3,4) + A(4,4)

这个下标结果:

ans =34

但这并不是对单个列求和便捷的方式。

也可以用一个下标 A(k) 表示矩阵的元素。单下标是引用行和列向量的常用方法。然而,它也可以应用于一个完全二维的矩阵,在这种情况下,原矩阵被看成由其列组成的一个长列向量。对于方阵,A(8) 是指向存储在 A(4,2) 中的值 15 的另一种方式。

如果你试图使用矩阵外的一个元素的值,MATLAB 会提示错误:

t = A(4,5)
Index exceeds matrix dimensions.

相反地,如果你将一个值存储在矩阵外的一个元素中,那么这个矩阵的大小就会增加,以便于填充新的元素:

X = A;
X(4,5) = 17
X =16   3   2  13   05     10  11   8   09      6   7  12   04     15  14   1  17

2.4.2 冒号运算符

英文冒号 : 是 MATLAB 中最重要的运算符之一,它以几种不同的形式出现。下面一个表达式:

1:10

是一个包含整数从 1 到 10 的行向量:

1 2 3 4 5 6 7 8 9 10

如果要使用其他间距(默认是 1),请指定增量。例如:

100:-7:50

100 93 86 79 72 65 58 51

还有,

0:pi/4:pi

0 0.7854 1.5708 2.3562 3.1416

包含冒号的下标指的是矩阵的一部分:

A(1:k,j)

这个表达式指的是 A 矩阵的第 j 列的前 k个元素。因此,

sum(A(1:4,4))

计算第四列的和。然而我们有一种更好的方法来执行这个计算。冒号本身指矩阵行或列中的所有元素,关键词 end 指最后一行或最后一列。因此,

sum(A(:,end))

计算 A 矩阵最后一列元素的和:

ans =34

为什么 4×4 的方阵和等于34? 如果整数从 1 到 16 被分成4组,并且它们的和相等,那么它们的和必须是:

sum(1:16)/4

它的结果当然是:

ans =34

2.4.3 联结运算符

联结运算符是一个将小矩阵连接成大矩阵的过程。实际上,你通过把它的各个元素连接起来得到了你的第一个矩阵。方括号 [ ] 是连接操作符。例如,从 4×4 的方阵、A 和表单开始

B = [A A+32; A+48 A+16]

结果得到一个 8×8 矩阵,由四个子矩阵连接得到:

B =16    3    2  13  48  35  34  455     10  11   8  37  42  43  409     6    7  12  41  38  39  444     15  14  1   36  47  46  3364    51  50  61  32  19  18  2953    58  59  56  21  26  27  2457    54  55  60  25  22  23  2852    63  62  49  20  31  30  17

这个矩阵可以继续联结为更大的矩阵。它的元素是在整数范围 1:64 重新排列得到的。对它列求和的确是一个 8×8 方阵的值:

sum(B)
ans =260 260 260 260 260 260 260 260

但对它的行求和 sum(B’) 并不是统一的值。这就需要进一步的处理,使这成为一个有效的 8×8 方阵。

2.4.4 删除行和列

您可以使用一对方括号从矩阵中删除行和列。例如,

X = A;

然后,要删除 X 的第二列,表达式如下,

X(:,2) = []

把矩阵 X 变成

X =16     2  135     11   89      7  124     14   1

如果从矩阵中删除某一个元素,结果就不再是矩阵了。因此,表达式如

X(1,2) = []

这就会导致错误。然而,使用某个下标删除对应的个元素或元素序列,并将其余元素重新组合成行向量,这样的变换是可以的。所以,

X(2:2:10) = []

结果则为

X =16 9 2 7 13 12 1

2.4.5 标量扩展

矩阵和标量可以用几种不同的方式结合。例如,从矩阵中减去一个标量是通过从矩阵的每个元素中减去它。方阵中元素的平均值是 8.5 ,因此

B = A - 8.5

结果是一个列的和为零的矩阵:

B =7.5   -5.5    -6.5     4.5-3.5     1.5     2.5    -0.50.5     -2.5    -1.5     3.5-4.5     6.5     5.5    -7.5
sum(B)
ans =0  0   0   0

通过扩展标量,MATLAB 为矩阵内的所有元素分配一个指定的标量。例如,

B(1:2,2:3) = 0

把 B 的一部分归零:

B =7.5      0       0     4.5-3.5       0       0    -0.50.5     -2.5    -1.5     3.5-4.5     6.5     5.5    -7.5

2.4.6 逻辑下标

由逻辑和关系操作创建的逻辑向量可用于引用子数组。假设 X 是一个普通矩阵而 L 是一个相同大小的矩阵这是一些逻辑运算的结果。然后 X(L) 指定 X 的元素其中 L 的元素是非零的。

这种下标可以通过将逻辑操作指定为下标表达式一步完成。假设您有以下数据集:

x = [2.1 1.7 1.6 1.5 NaN 1.9 1.8 1.5 5.1 1.8 1.4 2.2 1.6 1.8];

NaN 标记表示的是缺省,例如未能对问卷上的一个项目作出响应。使用 isfinite(x) 来删除逻辑索引中缺失的数据,它适用于所有有限数值,而不适用于 NaNInf

x = x(isfinite(x))
x =2.1 1.7 1.6 1.5 1.9 1.8 1.5 5.1 1.8 1.4 2.2 1.6 1.8

这里有一个观察值:5.1,与其他数字相比看起来很不一样。这是一个异常值。下面的语句删除偏离的元素,这些元素与均值相比偏离了超过三个标准差:

x = x(abs(x-mean(x)) <= 3*std(x))
x =2.1 1.7 1.6 1.5 1.9 1.8 1.5 1.8 1.4 2.2 1.6 1.8

在上文中有一个例子,通过使用逻辑下标标量扩展将非素数设置为0,突出显示出质数在 Dürer 方阵中的位置。

A(~isprime(A)) = 0
A =0 3  2 135 0 11  00 0  7  00 0  0  0

2.4.7 查找函数

find 函数确定满足给定逻辑条件的数组元素的索引。在其最简单的形式中,find 返回一个索引的列向量。转置这个向量得到一个列向量的指标。例如,再以 Dürer 方阵为例。

k = find(isprime(A))'

利用一维索引,在方阵中找出质数的位置:

k =2 5 9 10 11 13

将这些质数整理表示为行向量,其顺序由 k 决定,

A(k)
ans =5 3 2 11 7 13

当你在赋值语句中使用 k 作为左边索引时,并且会保留矩阵结构:

A(k) = NaN
A =16   NaN     NaN     NaNNaN   10     NaN       89      6     NaN      124     15      14       1

2.5 数组的类型

2.5.1 多维数组

MATLAB 环境中的多维数组是具有两个以上下标的数组。创建多维数组的一种方法是调用包含两个以上参数的 01randrandn 函数。例如,

R = randn(3,4,5);

创建一个3×4×5的数组,其中包含 345 = 60 个正态分布随机元素。

三维数组可能表示三维物理数据,例如在矩形网格上采样的房间温度。或者它可以表示一个矩阵序列,A(k) 或者一个时间相关矩阵的样本, A(t) 在后一种情况下,第 k 个矩阵 (i,j) 的第 (i,j) 个元素,或者说第 tk 个矩阵,用 A(i,j,k) 表示。

MATLAB 和 Dürer 版本的 4 阶方阵的不同之处在于两个列的互换。通过交换列可以生成许多不同的方阵。
下面表达式:

p = perms(1:4);

生成 4!= 24 个排列,其元素范围取1:4。第 k 个排列是行向量 p(k,? 。然后,

A = magic(4);
M = zeros(4,4,24);
for k = 1:24M(:,:,k) = A(:,p(k,:));
end

将 24 个方阵的序列存储在三维数组中 M 中, M 的大小为

size(M)
ans =4 4 24

注意,图中所示矩阵的顺序可能与结果不同。 perms 函数总是返回输入向量的所有排列,但是对于不同的 MATLAB 版本,排列的顺序可能不同。
表达式:

sum(M,d)

通过改变第 d 个下标来计算求。所以

sum(M,1)

是一个包含具有 24 个行向量副本的 1×4×24 的数组

34 34 34 34

然后,

sum(M,2)

是一个包含具有 24 个列向量副本的 1×4×24 的数组

34
34
34
34

最后,

S = sum(M,3)

将序列中的 24 个矩阵相加。结果是一个大小为 4×4×1 的矩阵,所以看起来像一个 4×4 的矩阵:

S =204 204 204 204204 204 204 204204 204 204 204204 204 204 204

2.5.2 单元数组

MATLAB 中的单元数组是多维数组,其元素是从其他数组中复制而来。我们可以使用函数:cell 创建空矩阵的单元格数组。但是,更常用的是将单元格数组的杂项集合放在花括号{}中。花括号还与下标一起用于访问各种单元格的内容。例如,

C = {A sum(A) prod(prod(A))}

MATLAB2019 快速入门教程(官方手册翻译)(2/4)相关推荐

  1. 关于 MATLAB2019 快速入门教程(官方手册翻译)的几点说明

    4月份的两则博文: MATLAB2019 快速入门教程(官方手册翻译)(1/4) MATLAB2019 快速入门教程(官方手册翻译)(2/4) 是写在我尚未找到 MATLAB 中文文档时翻译的,现在我 ...

  2. Python3数据分析——NumPy快速入门教程(官网教程翻译)

    目录 一.基础篇 1.创建数组 2.打印数组 3.基本运算 4.通用函数(ufunc) 5.索引,切片和迭代 二.形状操作 1.更改数组的形状 2.组合(stack)不同的数组 3.将一个数组分割(s ...

  3. redis快速入门教程

    原文链接:redis快速入门教程 redis是什么 redis的作者何许人也 谁在使用redis 学会安装redis 学会启动redis 使用redis客户端 redis数据结构 – 简介 redis ...

  4. 认识AndEngine选自Android 2D游戏引擎AndEngine快速入门教程

    认识AndEngine什么是AndEngine 随着Android手机.平板的盛行,Android下的游戏也不断的变得火热.而对于游戏开发有兴趣的同学们,应该也想要学习开发游戏.虽说游戏开发的引擎较多 ...

  5. ArduinoYun快速入门教程第1章ArduinoYun概览

    ArduinoYun快速入门教程第1章ArduinoYun概览 本章是全书的开篇,在本章笔者将把Arduino以及Yun的方方面面介绍给大家.其中包括Arduino这个术语的解释.Yun相对其他开发板 ...

  6. C#游戏开发快速入门教程Unity5.5教程

    C#游戏开发快速入门教程Unity5.5教程 试读文档下载地址:http://pan.baidu.com/s/1slwBHoD C#是微软发布的高级程序设计语言,这门语言和C语言一样,已经成为了大学计 ...

  7. python快速入门答案-总算懂得python脚本快速入门教程

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

  8. MySQL 快速入门教程

    转:MySQL快速 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据 ...

  9. sklearn快速入门教程:(四)模型自动调参

    上个教程中我们已经看到在sklearn中调用机器学习模型其实非常简单.但要获得较好的预测效果则需要选取合适的超参数.在实际的项目中其实也有不少参数是由工程师借助其经验手动调整的,但在许多场景下这种方式 ...

最新文章

  1. 在VS中,如何新建项目,如何添加类库
  2. 浅谈湖仓一体化对上层机器学习业务的促进
  3. DIV+CSS实战(四)
  4. 最简单的基于FFMPEG的封装格式转换器(无编解码)
  5. Dreamweaver 2020安装教程
  6. free text search - enterprise search
  7. Linux学习笔记之一————什么是Linux及其应用领域
  8. [转载] 华中科技大学期刊分类办法
  9. Bootstrap CSS 编码规范之媒体查询的位置
  10. 设计一个线程安全的单例(Singleton)模式
  11. python泊松_Poisson Distribution——泊松分布
  12. 抖音怎么上热门?这样发视频点赞过万!
  13. 虚拟机CentOS-7修改ip地址
  14. 十问数据库:问来路,问现在,问未来
  15. UCan技术开放日|告别转型“焦虑”,从云原生开始
  16. Word中如何删除目录页的页码
  17. C语言数据结构——广义表
  18. C语言输出4*5的矩阵
  19. proxifier 出现错误代码10060处理
  20. uCOSIII移植stm32c8t6

热门文章

  1. EndNote与word的兼容性
  2. ASP.NET的网页代码模型及生命周期
  3. 2019年流入人口TOP10城市:第二你猜不到
  4. 手机便签怎么正确使用?
  5. HTML5JavaScript----1.点击显示对话框2.跳转到另一个网页3.记录历史
  6. Linux_套接字(C++_TCP回显服务器——多进程/线程池(生产者消费者模型)处理多链接请求)
  7. 勾股定理一日一证连载115
  8. 【ESD专题】案例:双层SAM卡接口是每个脚都需要静电防护吗?
  9. pycurl的学习之路
  10. Java多线程——基本知识