>_<:矩阵构造

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 [具有相同列数的两个矩阵,合并为一个新矩阵,否则不行]
 
 
2.函数调用合并矩阵
 
(1)cat(1,A,B)和[A;B]一样  cat(2,A,B)和[A B]一样
(2)horzcat(A,B)和[A B]一样
(3)vertcat(A,B)和[A;B]一样
(4)repmat(A,M,N)得到MXN块矩阵,每块都为A
(5)blkdiag(A,B)得到以矩阵A和B为对角块的矩阵
 
 
>_<:矩阵行列的删除
     
1、删除矩阵的某一行或者是某一列:只需将该行或者该列赋予一个空矩阵[]即可:A(2,:)=[]第二行为空
 
 
>_<:矩阵下标引用
1、访问单个元素可用A(i,j)
2、线性引用元素
  Ø  对于矩阵A,线性引用元素的格式为A(k)。通常这样的引用用于行向量或列向量,但也可用于二维矩阵。
  Ø  MATLAB按列优先排列的一个长列向量格 式(线性引用元素)来存储矩阵元素。
  例如:A=zeros(3);那么A(3,2)就是对应位置从(1,1)竖着编号的号码k,A(k)
3、访问多个元素

  操作符“:”可以用来表示矩阵的多个元素。若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中,可以用满矩阵存储方式和稀疏矩阵存储方式来存储矩阵。
Ø  若一个矩阵只有少数的元素非零,称为稀疏矩阵。稀疏矩阵非零元素及其对应的下标来表示。
Ø  用户可以创建双精度、复数和逻辑等类型的稀疏矩阵。
 
1、稀疏矩阵的创建
  Ø  在MATLAB中,用函数sparse()实现满矩阵到稀疏矩阵的转换。
  Ø  在MATLAB中用函数full()实现稀疏矩阵到满矩阵的转换。
  Ø  在MATLAB中,还可以用函数sparse()直接创建稀疏矩阵,其具体用法如下。
           S = sparse(i,j,s,m,n),其中,i和j分别是稀疏矩阵非零元素的行和列下标,s为相应的非零元素的值,m和n分别是矩阵的行数和列数。
  Ø  MATLAB还提供一些函数用于创建特殊稀疏矩阵,这些函数如下表所示。
     speye(n)创建单位稀疏矩阵
     spones(S)将稀疏矩阵的非0元素的值改为1
       sprand(S)或sprand(m,n,density)将稀疏矩阵S的非0元素的值改为均匀分布的随机数或创建mXn的随机稀疏矩阵
       sprandn(S)或sprandn(m,n,density)将稀疏矩阵S的非0元素的值改为高斯分布的随机数

2、查看稀疏矩阵

MATLAB提供一些函数用于查看稀疏矩阵的信息,如下表所示:

  Ø nnz(X)返回非零值个数
  Ø nonzeros(A)返回非0值
  Ø nzmax(S)返回用于存储非零值的空间长度

[matlab自带的稀疏矩阵矩阵west0479:导入load west0479 可以用spy(west0479)图形化显示稀疏矩阵非零值分布

3、稀疏矩阵的运算规则

在MATLAB中的各种命令和函数都可以用于稀疏矩阵的运算,并且遵循如下的一些约定。

  Ø 把矩阵变为标量或者定长向量的函数总是给出满矩阵;
  Ø 对于标量或者定长向量变换到矩阵的函 数,如函数zeros()、ones()、eye()、rand()等总是给出满矩阵;
  Ø 从矩阵到矩阵的变换函数将以原矩阵的形式出现;
  Ø 在参与矩阵扩展的子矩阵(如[ A B;C D])中,只要有一个是稀疏矩阵,那么所得的结果也是稀疏矩阵;
  Ø 在矩阵引用中,将仍以原矩阵形式给出结果。
 

  

  

 
 
 
 
 
 
 
 
 
 
 

[matlab] 矩阵操作的更多相关文章

  1. MATLAB矩阵操作大全

    转载自:http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示 在MATLAB中创建矩阵 ...

  2. MATLAB矩阵操作和算术运算符

    矩阵的表示 矩阵之间用空格或者是逗号间隔 矩阵可以拼接(可以用矩阵拼接) 实部矩阵和虚部矩阵构成复数矩阵,一一对应. 冒号表达式: 格式: e1:e2:e3 e1表示初始值    e2表示步长   e ...

  3. MATLAB矩阵操作

  4. MATLAB命令大全和矩阵操作大全

    转载自: http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示在MATLAB中创建矩阵 ...

  5. Matlab、R向量与矩阵操作 z

    已有 1849 次阅读 2012-8-2 15:15 |系统分类:科研笔记|关键词:矩阵 480 window border center Matlab.R向量与矩阵操作   描    述 Matla ...

  6. 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(),然后输入 ...

  7. matlab字符串操作总结

    matlab字符串操作总结 字符串操作总结 char(S1,S2,…)利用给定的字符串或单元数组创建字符数组double(S)将字符串转化成ASC码形式cellstr(S)利用的给定的字符数组创建字符 ...

  8. Matlab文件操作

    1.  Matlab文件操作主要有三个步骤:首先打开文件,然后对文件进行读写操作,最后要关闭文件. 2.  fid=fopen(文件名,打开方式) 'r' 只读,文件必须存在(缺省的打开方式) 'w' ...

  9. [置顶] [MATLAB技术贴]漫谈MATLAB矩阵转置

    矩阵转置是matlab最基本的操作了,但这个基本操作,也是很多初学者容易出现问题的地方.本帖通过几个实例演示matlab矩阵转置的操作. 方法一:'  运算符与  .'  运算符 >>a ...

随机推荐

  1. HTML5基础

    一.HTML(超文本标记语言) 1>就是文本,由浏览器负责将它解析成具体的网页内容 2>由N个标签(节点.元素.标记)组成 二.常见HTML标签 1>标题标签:h1.h2.h3.h4 ...

  2. HDU 2222 Keywords Search(AC自动机入门)

    题意:给出若干个单词和一段文本,问有多少个单词出现在其中.如果两个单词是相同的,得算两个单词的贡献. 分析:直接就是AC自动机的模板了. 具体见代码: #include <stdio.h> ...

  3. 循序渐进Python3(三) -- 2 -- 内置函数

    上一篇我们介绍了21个最常用到的函数,简单列一下,帮助回忆巩固: 1.abs 2.dict 3.float 4.help 5.input 6.int 7.len 8.list 9.max 10.min ...

  4. 使用sessionStorage、localStorage存储数组与对象(转)

    http://my.oschina.net/crazymus/blog/371757 使用sessionStorage.localStorage存储数组与对象 发表于3个月前(2015-01-26 1 ...

  5. SegmentFault创始人高阳:辍学后带着500元北漂,4年建成国内最大开发者

    i黑马注:i黑马曾经和高阳聊过几次天,在他身上我看到了90后CEO特别明显的成功特质“敢为天下先”.在别人犹豫的时候敢第一个出手,在互联网时代往往会取得最关键的“先机优势”. 7月19日,“腾讯产品家 ...

  6. 开源PLM软件Aras详解五 如何让ItemType显示在TOC上

    通过上一边ItemType我们大概了解,那么如何让ItemType显示在左侧的菜单上呢,又如何设置增删查改的权限呢,接下来将为演示. 在上一篇中,我们知道了ItemType的结构图,如下图 那么如何让 ...

  7. 爬虫--scrapy--windows上安装

    关于scrapy的安装网上有一大把教程,但是比较麻烦,各种包----------,这里给大家介绍一款神器: 下载地址:http://continuum.io/downloads 根据自己电脑的系统选择 ...

  8. win7添加鼠标右键关联

    背景: hfs升级把右键给升没了 搜索了下 都是如何删除的  但没有怎么添加 添加: 保存如下内容为.reg 然后双击导入即可 Windows Registry Editor Version 5.00 ...

  9. Apache-Commons包作用说明

    Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.项目地址http://commons.apache.org/ Commons BeanUtils 提供 ...

  10. 管理权限<八>

    权限:如果用户要访问其它方案的对象,则必须为其授予对象的权限.为权限  权限 权限是指执行特定类型 sql 命令或是访问其它方案对象的权利,包括系统权限和对象权限两种. 系统权限  系统权限介绍 ...