matlab 矩阵
假设矩阵A=[1 3;4 2]
1.对角置零: A-diag(diag(A))
2.求A的特征值以及特征向量: 用到eig(A)函数,此函数有五种用法,如下:
2.1 E=eig(A):求矩阵A的全部特征值,构成向量E。
E= 3.4641
-3.4641
2.2 [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量
v = 0.6547 -0.6547
0.7559 0.7559
d = 3.4641 0
0 -3.4641
2.3 [V,D]=eig(A,'nobalance'):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。
2.4 E=eig(A,B):由eig(A,B)返回N×N阶方阵A和B的N个广义特征值,构成向量E
2.5 [V,D]=eig(A,B):由eig(A,B)返回方阵A和B的N个广义特征值,构成N×N阶对角阵D,其对角线上的N个元素即为相应的广义特征值,同时将返回相应的特征向量构成N×N阶满秩矩阵,且满足AV=BVD。
3.matlab 的排序函数sort
3.1 sort(A) 功能:返回对向量A中的元素按列升序排列的新向量。也就是按从小到大排序。
3.2 [Y, I] = sort(A, dim, mode) 功能:对矩阵A的各列或各行重新排序,I记录Y中的元素在排序前A中位置,其中dim指明读A的列还是行进行排序。若dim=1,则按列排序;若dim=2,则按行排序。mode为排序的方式,取值'ascend'为升序,'descend'为降序。
a=[1 2 3;3 9 6;4 10 8 ; 4 0 7]
a =
1 2 3
3 9 6
4 10 8
4 0 7
>> [Y, I] = sort(a, 1, 'ascend')
Y =
1 0 3
3 2 6
4 9 7
4 10 8
I =
1 4 1
2 1 2
3 2 4
4 3 3
4.matlab的cumsum函数 matlab中cumsum函数通常用于计算一个数组各行的累加值。
a=[1 2 3;3 9 6;4 10 8 ; 4 0 7]
cumsum(a)
ans =
1 2 3
4 11 9
8 21 17
12 21 24
5.求矩阵的最大的前k个特征值程序
A=[1 3 7;3 8 9;5 4 6];
[V,D]=eig(A);
D=diag(D);
[ D,I]=sort(D,'descend');
V(:,I(1:2))就是前2个最大的特征值
6.矩阵的size函数
(1)s=size(A),
当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。
(2)[r,c]=size(A),
当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。
7.max/min函数:min 和max用法类似, 我就不写了
(1)max(a)
如果a是一个矩阵,比如a=[1,2,3;4,5,6],max(a)的意思就是找出矩阵每列的最大值,
本例中:max(a)=[4,5,6]
(2)max(a,b)
如果a和b都是大于1维的矩阵,那么要求a和b的行列的维数都要相等,函数的结果是比较a和b中每个元素的大小,比如:
a=[1,2,3;4,5,6] b=[4,5,6;7,8,3]
max(a,b)=[4,5,6;7,8,6]
另外,如果a和b中至少有一个是常数,也是可以的。比如:
a=[1,2,3;4,5,6] b=3 c=5
max(a,b)=[3,3,3;4,5,6] 相信大家看了例子都明白了函数的意思了吧
max(b,c)=5
(3)max(a,[],dim)
这个函数的意思是针对于2维矩阵的,dim是英文字母dimension的缩写,意思是维数。
当dim=1时,比较的a矩阵的行,也就是和max(a)的效果是一样的;当dim2时,比较的是a矩阵的行。下面举个例子:
a=[1,2,3;4,5,6] max(a)=max(a,[],1)=[4,5,6] 比较的第一行和第二行的值
max(a,[],2)=[3,6]
(4)[C,I]=max(a)
C表示的是矩阵a每列的最大值,I表示的是每个最大值对应的下标:
下面举例说明:
还是刚才那个例子:a=[1,2,3;4,5,6] [C,I]=max(a)
结果显示的是C=[4,5,6] I=[2,2,2] 返回的是最大值对应的行号。
(5)[C,I]=max(a,[],dim)
同理:如果dim=1时,其结果和[c,i]=max(a)是一样的。
当dim=2时,同样上面的矩阵a,我们运行一下:
[c,i]=max(a,[],2) 结果是:c=[3,6] i=[3,3] i返回的是矩阵a的列号。
8.find函数:
找到非零元素的索引和值
语法:
8.1. ind = find(X)
8.2. ind = find(X, k)
8.3. ind = find(X, k, 'first')
8.4. ind = find(X, k, 'last')
8.5. [row,col] = find(X, ...)
8.6. [row,col,v] = find(X, ...)
说明:
1. ind = find(X)
找出矩阵X中的所有非零元素,并将这些元素的线性索引值(linear indices:按列)返回到向量ind中。
如果X是一个行向量,则ind是一个行向量;否则,ind是一个列向量。
如果X不含非零元素或是一个空矩阵,则ind是一个空矩阵。
2. ind = find(X, k) 或 3. ind = find(X, k, 'first')
返回第一个非零元素k的索引值。
k必须是一个正数,但是它可以是任何数字数值类型。
4. ind = find(X, k, 'last')
返回最后一个非零元素k的索引值。
5. [row,col] = find(X, ...)
返回矩阵X中非零元素的行和列的索引值。
这个语法对于处理稀疏矩阵尤其有用。
如果X是一个N(N>2)维矩阵,col包括列的线性索引。
例如,一个5*7*3的矩阵X,有一个非零元素X(4,2,3),find函数将返回row=4和col=16。也就是说,(第1页有7列)+(第2页有7列)+(第3页有2列)=16。
6. [row,col,v] = find(X, ...)
返回X中非零元素的一个列或行向量v,同时返回行和列的索引值。
如果X是一个逻辑表示,则v是一个逻辑矩阵。
输出向量v包含通过评估X表示得到的逻辑矩阵的非零元素。
9.dist函数
dist(A,B)计算A中每个行向量与B中每个列向量之间欧氏距离,A的行向量维数必须等于B的列向量维数。
matlab 矩阵的更多相关文章
- [置顶] [MATLAB技术贴]漫谈MATLAB矩阵转置
矩阵转置是matlab最基本的操作了,但这个基本操作,也是很多初学者容易出现问题的地方.本帖通过几个实例演示matlab矩阵转置的操作. 方法一:' 运算符与 .' 运算符 >>a ...
- matlab矩阵内存预分配
matlab矩阵内存预分配就意味着,划定一个固定的内存块,各数据可直接按"行.列指数"存放到对应的元素中.若矩阵中不预配置内存.则随着"行.列指数"的变大.MA ...
- MATLAB矩阵操作大全
转载自:http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示 在MATLAB中创建矩阵 ...
- Eigen ,MKL和 matlab 矩阵乘法速度比较
Eigen 矩阵乘法的速度 < MKL矩阵乘法的速度,MKL矩阵乘法的速度与matlab矩阵乘法的速度相差不大,但matlab GPU版本的矩阵乘法速度是CUP的两倍,在采用float数据类型 ...
- Matlab矩阵学习三 矩阵的运算
Matlab矩阵的运算 一.矩阵的加减 在matlab中,矩阵的加减和数的加减符号一样,都是"+"和”-“,不同的是两个进行运算的矩阵维度必须相同 二.数乘 三.乘法 矩阵乘法 ...
- Matlab矩阵学习二 矩阵的修改
Matlab矩阵的修改 一.元素修改 (1).矩阵扩充 (2)矩阵删除某行或某列 删除某行:A(m,:)=[] %删除A矩阵的第m行 删除某列: A(:,n)=[] %删除A矩阵的第n列 ...
- Matlab矩阵学习一 矩阵的创建
Matlab矩阵创建 1.直接输入数值创建 矩阵元素要用[ ] 括起来,";"代表一行结束,以下创建方式也是合法的,矩阵的元素可以是实数,也可以是复数,复数用a+bi表 ...
- [Machine-Learning] matlab 矩阵常见基本操作
概述 对矩阵的主要操作,matlab 中都有现成的指令或者库函数与之对应. 矩阵最早来自于方程组的系数和常数所构成的方阵,这一概念是由19世纪的英国数学家凯利提出的. 创建矩阵 这里写的不全,但是足够 ...
- matlab————矩阵输出到txt
matlab如何输出矩阵到txt并指定数的精度 (2013-11-20 16:50:43)转载▼ 标签: matlab 输出数据 假设你的数据矩阵为a; [m n] = size(a); [filen ...
- [matlab] 矩阵操作
>_<:矩阵构造 1.简单矩阵构造 最简单的方法是采用矩阵构造符“[]”.构造1´n矩阵(行向量)时,可以将各元素依次放入矩阵构造符[]内,并且以空格或者逗号分隔:构造m´n矩阵时,每行如 ...
随机推荐
- USB OTG介绍(转载)
1. 概要 OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,为连接时候的USB Host,A-Device始终为总线提供电力,ID悬空被称作为B-Devic ...
- 弹出框、遮罩层demo
仿alert.confirm的弹出框. 弹出后,用遮罩层将背景虚化. 代码如下: <html> <meta http-equiv="Content-Type" c ...
- uva10820 send a table (nlogn求1-n欧拉函数值模版
//重点就是求1-n的欧拉函数啦,重点是nlogn求法的版 //大概过程类似于筛选法求素数 #include<cstdio> #include<iostream> #inclu ...
- hdu 5615 Jam's math problem(判断是否能合并多项式)
方法一:由十字相乘相关理论我们能知道,如果要有p,k,q,m,那么首先要有解,所以b*b-4*a*c要>0,然而因为p,k,q,m是正整数,所以代表x1,x2都是有理数,有理数是什么鬼呢?就是解 ...
- BZOJ 1833 ZJOI2010 count 数字计数 数位DP
题目大意:求[a,b]间全部的整数中0~9每一个数字出现了几次 令f[i]为i位数(算前导零)中每一个数出现的次数(一定是同样的,所以仅仅记录一个即可了) 有f[i]=f[i-1]*10+10^(i- ...
- 安装Discuz!论坛时提示“mysqli_connect() 不支持 advice_mysqli_connect”
安装Discuz!论坛时提示“不支持Mysql数据库,无法安装论坛”的解决方法1,在系统的 system32(C:\windows\system32)目录下缺少libmysql.dll文件,解决方法是 ...
- Java反射及依赖注入简单模拟
一.编写Dao类 ? 1 2 3 4 5 6 7 8 9 10 11 package cn.com.songjy.annotation; import java.util.Date; publ ...
- WebView的基本使用
---恢复内容开始--- 一.实例化WebView 通过xml实例化 xml <WebView android:id="@+id/webview" android:layou ...
- 用JQuery实现表格隔行变色和突出显示当前行
用JQuery实现表格隔行变色和突出显示当前行 上源码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "htt ...
- Java多线程相关知识
1)wait() notify() sleep() sleep是Thread类的函数,wait和notify是Object的函数. sleep的时候keep对象锁,wait的时候release 对 ...