[matlab] 矩阵操作
>_<:矩阵构造
1.简单矩阵构造
最简单的方法是采用矩阵构造符“[]”。构造1´n矩阵(行向量)时,可以将各元素依次放入矩阵构造符[]内,并且以空格或者逗号分隔;构造m´n矩阵时,每行如上处理,并且行与行之间用分号分隔。
2.特殊矩阵构造
在MATLAB中还提供一些函数用来构造特殊矩阵,这些函数如下表所示。
(1)ones(n) 或ones(m,n)产生mXn全为1的矩阵 (2)zeros(n) 或 zeros(m,n)产生mXn全为0的矩阵 (3)eye(n)产生nXn的单位矩阵 (4)diag(v)将向量v转化为一个对角矩阵 (5)magic(n)产生nXn的模方矩阵[每行每列之和相等] (6)rand(n)或 rand(m,n)产生mXn的随机矩阵,其中随机数分布服从0~1的均匀分布 (7)randn(n) 或 randn(m,n)产生mXn的随机矩阵,其中随机数服从标准高斯分布[均值为0方差为1] (8)randperm(n)产生1~n的随机排列3.向量构造
最简单的方法是采用向量构造符“:”,其常用的用法如下。
(1)a:b 返回以a为起点,以1为步长,且所有取值在a与b之间的向量。 (2)a:s:b 返回以a为起点,以s为步长,且所有取值在a与b之间的向量。>_<:矩阵大小的改变
1.矩阵的合并
矩阵的合并就是把两个或者两个以上的矩阵连接成一个新矩阵。矩阵构造符[] 可用于构造矩阵,并可以作为一个矩阵合并操作符。
Ø 表达式C=[A B]在水平方向合并矩阵A和B [具有相同行数的两个矩阵,合并为一个新矩阵,否则不行] Ø 表达式C=[A;B]在竖直方向合并矩阵A和B [具有相同列数的两个矩阵,合并为一个新矩阵,否则不行]1、删除矩阵的某一行或者是某一列:只需将该行或者该列赋予一个空矩阵[]即可:A(2,:)=[]第二行为空
操作符“:”可以用来表示矩阵的多个元素。若A是二维矩阵,其主要用法如下:
Ø A(:,:) 返回矩阵A的所有元素。 Ø A(i,:) 返回矩阵A第i行的所有元素。 Ø A(i,k1:k2) 返回矩阵A第i行的自k1到k2列的所有元素。 Ø A(:,j) 返回矩阵A第j列的所有元素。 Ø A(k1:k2,j) 返回矩阵A第j列的自k1到k2行的所有元素。若A是多维矩阵,也可以通过类似的方法实现对其访问。
>_<:矩阵信息的获取
1、矩阵尺寸信息
Ø size(X)或size(X,dim)返回各个方向的长度,以向量的方式存储;后一个是返回指定方向的长度 Ø length(x)返回各个方向中最长长度 Ø ndims(A)矩阵的维数 Ø numel(A)矩阵的元素个数2、元素的数据类型[is---略]
3、矩阵的数据结构[is---略]
4、矩阵结构的改变
Ø reshape(A,m,n)把A重新排列为mXn的矩阵[按照长列向量的顺序重排元素] Ø rot90(A)或rot90(A,k)逆时针旋转矩阵900或k*900 Ø fliplr(A)以竖直方向为轴做镜像 Ø filpud(A)以水平方向为轴做镜像 Ø flipdim(A,dim)以指定轴做镜像[1水平、2竖直] Ø transpose(A)矩阵的转秩相当于B=A.' Ø ctranspose(A)矩阵的共轭转秩相当于B=A'>_<:稀疏矩阵
Ø 在MATLAB中,可以用满矩阵存储方式和稀疏矩阵存储方式来存储矩阵。 Ø 若一个矩阵只有少数的元素非零,称为稀疏矩阵。稀疏矩阵非零元素及其对应的下标来表示。 Ø 用户可以创建双精度、复数和逻辑等类型的稀疏矩阵。2、查看稀疏矩阵
MATLAB提供一些函数用于查看稀疏矩阵的信息,如下表所示:
Ø nnz(X)返回非零值个数 Ø nonzeros(A)返回非0值 Ø nzmax(S)返回用于存储非零值的空间长度[matlab自带的稀疏矩阵矩阵west0479:导入load west0479 可以用spy(west0479)图形化显示稀疏矩阵非零值分布
3、稀疏矩阵的运算规则
在MATLAB中的各种命令和函数都可以用于稀疏矩阵的运算,并且遵循如下的一些约定。
Ø 把矩阵变为标量或者定长向量的函数总是给出满矩阵; Ø 对于标量或者定长向量变换到矩阵的函 数,如函数zeros()、ones()、eye()、rand()等总是给出满矩阵;
[matlab] 矩阵操作的更多相关文章
- MATLAB矩阵操作大全
转载自:http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示 在MATLAB中创建矩阵 ...
- MATLAB矩阵操作和算术运算符
矩阵的表示 矩阵之间用空格或者是逗号间隔 矩阵可以拼接(可以用矩阵拼接) 实部矩阵和虚部矩阵构成复数矩阵,一一对应. 冒号表达式: 格式: e1:e2:e3 e1表示初始值 e2表示步长 e ...
- MATLAB矩阵操作
- MATLAB命令大全和矩阵操作大全
转载自: http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示在MATLAB中创建矩阵 ...
- Matlab、R向量与矩阵操作 z
已有 1849 次阅读 2012-8-2 15:15 |系统分类:科研笔记|关键词:矩阵 480 window border center Matlab.R向量与矩阵操作 描 述 Matla ...
- Matlab、R向量与矩阵操作
Matlab.R向量与矩阵操作 描 述 Matlab R 1 建立行向量v=[1 2 3 4] v=[1 2 3 4] v<-c(1,2,3,4)或v<-scan(),然后输入 ...
- matlab字符串操作总结
matlab字符串操作总结 字符串操作总结 char(S1,S2,…)利用给定的字符串或单元数组创建字符数组double(S)将字符串转化成ASC码形式cellstr(S)利用的给定的字符数组创建字符 ...
- Matlab文件操作
1. Matlab文件操作主要有三个步骤:首先打开文件,然后对文件进行读写操作,最后要关闭文件. 2. fid=fopen(文件名,打开方式) 'r' 只读,文件必须存在(缺省的打开方式) 'w' ...
- [置顶] [MATLAB技术贴]漫谈MATLAB矩阵转置
矩阵转置是matlab最基本的操作了,但这个基本操作,也是很多初学者容易出现问题的地方.本帖通过几个实例演示matlab矩阵转置的操作. 方法一:' 运算符与 .' 运算符 >>a ...
随机推荐
- TS 流的解码过程(系摘抄)
TS 流解码过程: 1. 获取TS中的PAT 2. 获取TS中的PMT 3. 根据PMT可以知道当前网络中传输的视频(音频)类型(H264),相应的PID,PCR的PID等信息. 4. 设置demux ...
- IRelationalOperator空间关系接口简介
几何对象之间都存在某种关联关系,如包含,相等,在内部,相交,叠加等.这些关联关系的获得都可以通过IRelationalOperator接口来获得,关系运算是在两个几何对象间进行的,通过IRelatio ...
- 英语语法 It all started the summer before second grade when our moving van pulled into her neighborhood
It all started the summer before second grade when our moving van pulled into herneighborhood It all ...
- val()方法
在jquery里面,用val()方法来获取元素的值.有参数就是设置元素的值,没有就是获取元素的值. 参数也可以是一个数组val(array),例如:$(":radio").val( ...
- (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- 安装crab
1. crab 介绍: Recommender systems in Python 官网介绍:http://muricoca.github.io/crab/ 在安装过程中,发现一个问题,我已经安装了A ...
- create file遇到操作系统错误5拒绝访问
create file遇到操作系统错误5拒绝访问当用C#程序执行SQL创建一个数据库时出现错误:CREATE FILE 遇到操作系统错误 5(拒绝访问. 原因及解决方法如下:这是因为SQL Serve ...
- java多线程学习-同步之线程通信
这个示例是网上烂大街的,子线程循环100次,主线程循环50次,但是我试了很多次,而且从网上找了很多示例,其实多运行几次,看输出结果并不正确.不知道是我转牛角尖了,还是怎么了.也没有大神问,好痛苦.现在 ...
- Python:生成器
生成器:使用了 yield 的函数被称为生成器(generator).它记住上一次返回时在函数体中的位置. yeild运行过程:当你向生成器要一个数时,生成器会执行,直至出现 yield 语句,生成器 ...
- sql server 2000通过机器名可以连,通过ip连不上的问题
客户那边两台服务器A和B,之前一直都是好好的,今天因为换了网络环境,结果数据库之间不能相互访问了. 目前只能A访问B,B访问不了A,在服务器A上面试了,通过ip连本机,也是连接超时. 开始想着是服务器 ...