matlab矩阵

【Matlab】PCA降维实现人脸识别(附学习资料、代码程序及注解、运行结果)

北城余情 提交于 2020-01-11 00:01:46
Matlab实现PCA人脸识别 寒假来了,阿汪先生总结了这一学期里学到的一些东西,并来和大家分享一下。 一、理论知识基础 1、一些前辈的经验分享(不局限于这些) (1) PCA人脸识别详解——初学者必看 . (2) 理解主成分分析 (PCA) . (3) LLE算法 . (4) 拉格朗日乘子法 . 2、阿汪先生做的一些笔记和用到的资料 原理资料上讲的很好,阿汪做了一些批注。水平不够,大家见谅呀!^-^ (1) 05-人脸图像超分辨率重建 . (2) 6.5-基于K-L变换的特征提取 . (3) Matlab_PCA_图像降维和人脸匹配_笔记 . 主要用到的资料: 人脸识别与人体动作识别技术及应用 [专著] / 曹林著.——北京:电子工业出版社,2015.8,ISBN:978-7-121-26660-7. 模式识别及MATLAB实现 [专著] / 杨杰主编.——北京:电子工业出版社,2017.8,ISBN:978-7-121-32127-6. 二、注解代码程序 1、重塑训练数据-T() function T = CreateDatabase(TrainDatabasePath) %此函数重塑训练数据库的所有2D图像放入一维列向量中。 %然后,将这些一维列向量放在一行中构造2D矩阵“ T”。 %一个2D矩阵,包含所有1D图像矢量。 %假设训练数据库中的所有P图像的MxN大小相同。

MATLAB矩阵的翻转求逆旋转转置

浪子不回头ぞ 提交于 2020-01-10 03:46:52
对角阵 对角矩阵 只有对角线上有非零元素的矩阵 数量矩阵 对角线上的元素相等的对角矩阵 单位矩阵 对角线上都为1的对角矩阵 (1)提取矩阵的对角线上的元素 diag(A) 提取矩阵A主对角线元素,产生一个列向量。 diag(A,k) 提取第k条对角线上的元素 k=0是中间的那条对角线 (2)构造对角矩阵 diag(V) 产生一个主对角线为V的对角阵 diag(V,k) 向量v为第k条对角线 例子 先建立5阶矩阵A,然后将A的第一行元素乘以1,第二行乘以2,……,第五行乘以5. >> A=[4 5 6 7 8;9 5 3 1 6;4 6 2 3 6;5 3 5 4 6;5 6 4 6 4] A = 4 5 6 7 8 9 5 3 1 6 4 6 2 3 6 5 3 5 4 6 5 6 4 6 4 >> D=diag(1:5) D = 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 5 >> F=D*A F = 4 5 6 7 8 18 10 6 2 12 12 18 6 9 18 20 12 20 16 24 25 30 20 30 20 三角阵 上三角阵 矩阵的对角线一下的元素全为零的矩阵 (1)ttiu(A) triu(A,k) 下三角阵 …………………上……………………… (2)tril(A) tril(A,k) 矩阵的转置

matlab实现HS

浪子不回头ぞ 提交于 2019-12-30 16:25:52
nargin表示所定义(或引用)的函数的输入参数的个数,例如: || 表示或者的意思。 zeros(n) :形成一个n n的零矩阵 zeros(n,m):形成一个n m的零矩阵 在matlab中,size()用来返回数据序列的行数和列数。 size(A,1)返回的是矩阵A所对应的行数。另外, (1)s=size(A), 当只有一个输出参数时,返回一个行向量,该行向量的第一个元素是矩阵的行 数,第二个元素是矩阵的列数。 (2)[r,c]=size(A), 当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。 (3)size(A,n)如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则 size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的时矩阵A的行数, c=size(A,2) 该语句返回的时矩阵A的列数。 (:,:,1) 这是三维图形中的第一层,可以拿一个魔方做对比,建立一个空间直角坐标系,(:,:,1)是指在x,y方向无限制,在z方向的长度为1。在(:,1)中,是二位矩阵的第一列。 冒号的意思是从最小下标,到最大下标,(:,:,1); 可以理解为三维数组前二维全取, 第三组只取下标为1的全部数据 6.im1=double(im1); double(I

Matlab数据处理——数据的保存和读取方法操作

 ̄綄美尐妖づ 提交于 2019-12-30 02:54:02
1:dlmwrite()函数保存成txt文件 使用方法: dlmwrite('filename', M) 使用默认分隔符“,”将矩阵M写入文本文件filename中; dlmwrite('filename', M, 'D') 使用分隔符D分割数据,“\t”表示tab分割,“,”为默认分割符; dlmwrite('filename', M, 'D', R, C) 从矩阵M的第R行、第C列开始,作为要写矩阵块的左上角,将数据用D分割写入文件。 其他用法还有: dlmwrite('filename', M, 'attrib1', value1, 'attrib2', value2, ...) dlmwrite('filename', M, '-append') dlmwrite('filename', M, '-append', attribute-value list) 例如: a = [1 2 3; 4 5 6; 7 8 9]; dlmwrite('test.txt', a); 则test.txt中的内容为: 1,2,3 4,5,6 7,8,9 2:save()函数保存成mat文件 ● save:将工作区中的所有变量保存在当前工作区中的文件中,文件名为 matlab.mat,MAT文件可以通过load函数再次导入工作区,MAT函数可以被不同的机器导入,甚至可以通过其他的程序调用。 ●

matlab基本函数min

旧巷老猫 提交于 2019-12-29 22:34:55
一起来学演化计算-matlab基本函数min 觉得有用的话,欢迎一起讨论相互学习~ Follow Me 找到数组中最小的元素 语法 M = min(A) 返回A的最小元素 如果A是一个向量,那么min(A)返回A的最小元素 如果A是一个矩阵,那么min(A)是一个行向量,包含每一列的最小值 如果A是一个多维数组,那么min(A)沿着大小不等于1的第一个数组维操作,将元素视为向量。这个维度的大小变为1,而所有其他维度的大小保持不变。如果A是第一个维度为0的空数组,那么min(A)返回一个与A大小相同的空数组。 M = min(A,[],dim) 返回沿dim维数的最小元素,例如,如果A是一个矩阵,那么min(A,[],2)是一个列向量,包含每一行的最小值。因为第一维是列,第二维才是行,所以按照行来取最小值,则得到的是一个列向量 [M,I] = min( ___ )找到A的最小值的索引,并使用前面语法中的任何输入参数在输出向量I中返回它们。如果最小值出现多次,那么min返回与第一次出现相对应的索引 C = min(A,B) 返回一个数组,其中最小的元素取自A或B。 ___ = min( ___ ,nanflag) 指定是否在计算之前的任何语法时包含或省略NaN值。对于单个数组的情况,要在不指定dim的情况下指定nanflag,请使用min(A,[],nanflag)。例如,min(A,

MATLAB学习(4)——min

◇◆丶佛笑我妖孽 提交于 2019-12-29 22:34:06
矩阵中最小的元素 语法: 1 M = min(A) %返回A的最小元素。如果A是一个向量,则min(A)返回A的最小元素。如果A是矩阵,则min(A)是包含每列最小值的行向量。如果A是一个多维数组,则min(A)沿着大小不等于1的第一个数组维度进行操作,将这些元素作为向量处理。此尺寸的尺寸变为1,而所有其他尺寸的尺寸保持不变。如果A是第一维0的空数组,则min(A)返回一个与A的大小相同的空数组。 2 M = min(A,[],dim) %返回沿dim维度的最小元素。例如,如果A是矩阵,那么min(A,[],2)是包含每行最小值的列向量。 3 [M,I] = min(___) %找到A的最小值的索引,并使用前面语法中的任何输入参数将它们返回到输出向量I中。如果最小值出现多次,则min返回与第一次出现相对应的索引。 4 C = min(A,B) %返回从A或B中取出最小元素的数组。 5 ___ = min(___,nanflag) %指定是否在任何前面的语法的计算中包含或省略NaN值。对于单输入的情况,要指定nanflag而不指定dim,请使用min(A,[],nanflag)。例如,min(A,[],'includenan')包含A中的所有NaN值,而min(A,[],'omitnan')忽略它们。 Input Arguments (1)A是输入数组,指定为标量,向量

Matlab操作矩阵的相关方法

社会主义新天地 提交于 2019-12-26 09:34:47
Matlab操作矩阵的相关方法 下面这篇文章主要是对吴恩达老师机器学习中matlab操作的一个整理和归纳 一、基本操作 1.生成矩阵( ones、zeros ) A = [1 2;3 4;5 6] #生成3行4列的矩阵 B = [1 2 3] #B就是一个行向量 C = [1;2;3] #定义c为一个列向量 D = 1:0.1:2 #定义开始值为1,步长为0.1,结束值为2的一个行向量 E = 1:6 #定义开始值为1,步长默认为1,结束值为6的行向量 ones(2,3) #矩阵中所有元素都为1 定义一个2行3列的矩阵 zeros(2,3) #矩阵中所有的元素都为0 定义一个2行3列的矩阵 2.生成随机矩阵( rand、randn ) rand(1,3) #生成1行3列的随机矩阵 randn(2,3) #生成高斯随机矩阵,高斯随机矩阵即为标准差或方差为1 3.生成单位矩阵( eye(n) ) eye(n) #生成n行n列的单位矩阵 4.帮助命令( help ) help 变量名 #可查看函数的API详解 二、移动数据 1.操作.txt文件( load ) 1.1 加载.txt文件并且拆分文件的行和列的值 data = load('文件路径') #加载文件 获取多列的数据(获取多行的数据和多列类似,只需要修改第一个参数即可) data(:,1) #拿到所有行第一列的数据 data(:

MATLAB基础(3)

落爺英雄遲暮 提交于 2019-12-26 09:34:29
1.MATLAB的运算 本次介绍的是MATLAB中的运算符。分别有算术运算符,关系运算符和,逻辑运算符。 表3.1 算术运算符 运算符 说明 运算符 说明 + 加法 .\ 左除法 - 减法 \ 矩阵左除法 .* 乘法 .^ 求幂 * 矩阵乘法 ^ 矩阵求幂 ./ 右除法 .' 转置 / 矩阵右除法 ' 矩阵求秩,复数求共轭 表3.2 关系运算符 运算符 说明 函数 < 小于 lt(a,b) <= 小于等于 le(a,b) > 大于 gt(a,b) >= 大于等于 ge(a,b) == 恒等于 eq(a,b) ~= 不等于 ne(a) 表3.3 逻辑运算符与函数对应表 运算符 说明 函数 & 与运算 and(a,b) | 或运算 or(a,b) ~ 非运算 not(a) xor 异或 xor(a,b) 2.MATLAB的矩阵 表3.4 构造特殊矩阵函数表 函数 说明 ones(n); ones(n,m) 建立一个元素都为1的矩阵 zeros(n); zeros(n,m) 建立一个元素都为0的矩阵 eye(n); eye(n,m) 建立一对角线元素为1,其他元素都为0的矩阵 diag(v); diag(X); diag(v,k); diag(X,k) 将一个向量变成一个对角矩阵,或求一个矩阵的对角元素 magic(n) 建立一个方阵使得它的每一行,每一列,和对角线元素的和都相等

Matlab语法

倖福魔咒の 提交于 2019-12-26 09:34:08
第一节 基本 数值计算 1. 变量:分为数值变量和字符变量 2. 常量:计算机中不变的量。如i、j、pi、NaN(不确定)、Inf(无穷大) 3. 字符变量:将字符串作为变量。有三种方法表示: (1) 用单引号' ' (2) 用函数sym(' ') (3) 用命令symbs 4. 举例 x=2 % 将2赋给变量x y=3 ; % 有;表示在命令窗口不显示y的值 z=x^2 -y % 数值计算。输出结果为1 f='sin(x)' % 用单引号定义一个字符变量 g=sym('cos(y)') % 用函数sym(' ')定义一个字符变量 syms a b % 用命令syms定义字符变量。一般用于多符号变量的定义 u=2*a % 字符计算。输出结果为2*a w=b^2-1 % 字符计算。输出结果为b^2-1 fg=f+g % 字符计算。输出结果为sin(x)+cos(y) uw=u*w % 字符计算。输出结果为2*a*(b^2-1) u/w % 字符计算。输出结果为2*a/(b^2-1) 第二节 矩阵构造及运算 Matlab中数据的结构形式就是一个矩阵。如x=2是一个1×1的矩阵 1. 矩阵的建立 (1) 直接输入法。 (2) 冒号法(1×N)。 (3) 函数法(特殊矩阵)。 (4) 矩阵的编辑(Array Editor)。 2. 向量 向量是1×N的特殊矩阵 ,即只有一行或者一列

matlab软件的矩阵和数组操作解析

血红的双手。 提交于 2019-12-26 09:33:54
矩阵和数组操作 Matlab中文含义就是矩阵实验室的意思,轻松灵活的处理矩阵式Matlab语言的特色。 概念: 数组:与其它编程语言一样,定义是:相同数据类型元素的集合。 矩阵:数学中早已定义。不再赘述,matlab中处理最多的是二维矩阵 矩阵的创建: 1直接输入 在命令行窗口中定义 A=[1,2,3;4,5,6;7,8,9] 分好是换行,逗号是本行 回车后如下图: 2函数法生成特殊的矩阵 (1)零矩阵:zeros(n) :生成n*n的零矩阵 zeros(n,m): 生成n*m的零矩阵 如下图: (2)单位矩阵:eye(n): 生成n*n的单位矩阵(对角线元素为1 其余元素为0) eye(n,m): 生成n*m的单位阵 如下图: (3)魔方矩阵(行、列、对角线元素和相同):magic()用法和以上函数一样 (4)对角矩阵(对角线上的矩阵非0):dig(1:5) :生成对角线元素为1,2,3,4,5 的5*5矩阵 如下图: (5)上三角矩阵(对角线以下的元素为0): triu() (6)下三角元素(对角线元素以上为0): tril() 代码: >> a=[1,2,3;4,5,6;7,8,9] a = 1 2 3 4 5 6 7 8 9 >> a=zeros(3,2) a = 0 0 0 0 0 0 >> a=eye(4) a = 1 0 0 0 0 1 0 0 0 0 1 0 0 0