▶ av15514817。这里集中了一些从视频中学到的散点。
▶ 语句 "edit + 函数名" 可以打开部分内置函数的源代码。非公开的源代码这会打开一个全是注释的文档。
▶ 函数文件中隐式定义了变量 varargin,varargout,nargin,nargout,分别代表输入函数的参数、输出函数的参数、输入函数的参数个数,输出函数的参数个数。
▶ 使用“发布”功能,MATLAB生 会将脚本运行一遍,生成一个 HTML 文档,内含脚本代码和输出结果,方便其他人在浏览器中阅读。
▶ 输出图形时使用导出设置来手工调节输出效果。
▶ 语句 "feature memstats" 查看内存使用情况。
▶ 当程序涉及多层嵌套循环时,将循环次数较多的循环放到内层中,效率较高。
▶ 有关图形句柄。图形句柄用一个数值变量来代表。根句柄(0)→ 窗口句柄(正整数)→ UI 对像,坐标轴……(浮点数)
▶ 函数 "get(句柄值)" 将获得该句柄属性的结构体表示。
▶ 语句 "gca" 意思是 get current axis,即获得当前坐标轴的句柄属性。
▶ 在一张图中插入多个图里的方法。一般情况下一个坐标轴只允许有一个图例框,可以设法创建一个不可兼得坐标轴,在在该坐标轴中添加图例,与原图的图例区分开。
▶ 几种常用的激活函数。
▶ BP(BackPropagation)神经网络要求激活函数可微。
▶ 数据归一化的原因。
● 数据带有不同单位,变化范围大,导致神经网络收敛慢,训练时间长。
● 分布范围大的数据在模式分类中作用偏大,分布范围小的数据在模式分类中作用偏小。
● 神经网络值域有限,需要将目标数据限制在激活函数值域以内。
● S 型激活函数在很大的数据范围上变化平缓,区分度太小。
▶ 归一化算法可以归到 [ 0 , 1 ] 或 [ -1 , 1 ] 。
▶ MATLAB 中使用函数 mapminmax() 来实现归一化。
1 y = mapminmax(x) % 将矩阵 x 的每一行分别归一化到 [-1, 1] 2 y = mapminmax(x, a, b) % 将矩阵 x 的每一行分别归一化到 [a, b] 3 4 [y, z] = mapminmax(x, a, b) % 同时返回一个结构体,保存了当前归一化变换的参数信息 5 6 u = mapminmax.apply(w, z) % 利用上面的结构体对新的矩阵 w 进行线性变换。要求 w 行数等于 x 行数,列数可以不同。因为 x 每一行的变换不尽相同,相当于有多个变换函数按行分别作用。 7 u = mapminmax('apply', w, z) % 等价用法 8 9 v = mapminmax.reverse(w, z) % 利用上面的结构体对新的矩阵 w 进行线性反变换。要求同上。 10 v = mapminmax('reverse', w, z) % 等价用法 11 12 % 举例: 13 x = [1, 2, 3; 4, 5, 6; 7, 8, 9]; 14 y = mapminmax(x); % y = [-1, 0, 1; -1, 0, 1; -1, 0, 1],归一化到 [-1, 1] 上 15 y = mapminmax(x, 3, 4); % y = [3, 3.5, 4; 3, 3.5, 4; 3, 3.5, 4],归一化到 [3, 4] 上 16 [y, z] = mapminmax(x, 3, 4); % y 同上 17 % z 的成员如下: 18 % name: 'mapminmax' 19 % xrows: 3 20 % xmax: [3x1 double] z.xmax = [3; 6; 9] 21 % xmin: [3x1 double] z.xmin = [1; 4; 7] 22 % xrange: [3x1 double] z.xrange = [2; 2; 2] 23 % yrows: 3 24 % ymax: 4 25 % ymin: 3 26 % yrange: 1 27 % gain: [3x1 double] z.gain = [0.5; 0.5; 0.5] 28 % xoffset: [3x1 double] z.xoffset = [2; 2; 2] 29 % no_change: 0 30 31 w = [4, 3, 2, 1; 8, 5, 6, 7; 12, 9, 11, 10]; 32 u = mapminmax.apply(w, z) % u = [4.5, 4.0, 3.5, 3.0; 5.0, 3.5, 4.0, 4.5; 5.5, 4.0, 5.0, 4.5] 33 % 说明:z 将 x 的第一行 [1, 2, 3] 线性变换到 [3, 4],将该变换作用于 [4, 3, 2, 1] 即得到 [4.5, 4.0, 3.5, 3.0],另外两行类似 34 35 v = mapminmax.reverse(w, z) % v = [3, 1, -1, -3; 14, 8, 10, 12; 25, 19, 23, 21] 36 % 说明:z 将 x 的第一行 [1, 2, 3] 线性变换到 [3, 4],将该变换的反变换作用于 [4, 3, 2, 1] 即得到 [3, 1, -1, -3],另外两行类似