MATLAB——第二天 矩阵
来源:互联网 发布:中兴怎么样知乎 编辑:程序博客网 时间:2024/05/29 05:06
写在前面
我们都知道,在没有持久化存储的情况下,大部分的数据是存储在数组里面的,
也就是对应于数学中的矩阵,
对于一个矩阵而已,最重要的不外乎:赋值,操作,取值
初始化矩阵
在MATLAB里给一个矩阵赋值的方法有很多,有直接赋值法、借助函数库的间接赋值法,
有时候还要生成一个在某个区间内的随机矩阵
一、直接赋值法:
>> A =[1,2,3,4]A = 1 2 3 4>> A= [1:1:4]A = 1 2 3 4
>> A=[1;2;3;4]A = 1 2 3 4>> A=[1:4;2:5]A = 1 2 3 4 2 3 4 5 >> B=A'B = 1 2 2 3 3 4 4 5
二、间接赋值法
生成一个平均分布的矩阵
>> A=linspace(1,3,6)A = 1.0000 1.4000 1.8000 2.2000 2.6000 3.0000生成一个全是0的矩阵
>> A=zeros(2,3)A = 0 0 0 0 0 0
生成一个单位矩阵
>> A=eye(3,3)A = 1 0 0 0 1 0 0 0 1生成一个全是1的矩阵
>> A=ones(2,3)A = 1 1 1 1 1 1生成一个n阶魔阵
>> A=magic(4)A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
三、在某个区间内生成随机矩阵
首先要知道
A= ran(n,m) 可以生成一个在区间(0,1) n*m的小数矩阵
>> A=rand(3,4)A = 0.9572 0.1419 0.7922 0.0357 0.4854 0.4218 0.9595 0.8491 0.8003 0.9157 0.6557 0.9340然后 A=rand(n,n)*k (k是大于0的) 生成n*m的小数矩阵的值在 (0,k)
>> rand(3)*5ans = 4.1060 0.8450 3.2387 0.0770 3.2456 2.2546 0.2151 3.6586 2.7350
然后在加上一个 d
就是 A=rand(n,n)*k+d 生成n*m的小数矩阵的值就在 (d,k+d)上了
>> A=rand(3)*5+1A = 3.8060 1.9522 5.9082 5.4093 2.8446 1.7820 4.3459 3.3036 5.2776
当然,如果只要整数,那么也行, 用 fix函数
A=fix(rand(n,n)*k)+d 当然因为中间取整了,所以整数的区间会缩小1,生成的整数矩阵区间 (d,k-1+d)
>> fix(rand(3)*5)+1ans = 4 3 3 2 3 2 1 1 2
因此,就可以抽象出两个生成随机矩阵的方法
生成在区间(a,b)上的整数
function A = randInter( min,max,n,m ) A=fix(rand(n,m)*(max-min+1))+min;end
生成在区间(a,b)上小数
function A = randFloat( min,max,n,m)A=rand(n,m)*(max-min)+min;end
矩阵操作
①常见的操作有: 矩阵与常数的乘除 矩阵与矩阵的加减乘除次幂
需要注意的是:‘ * ’ 和 ‘ .* ’是不一样的,' / '和 ‘ ./ ’ ‘^’和'.^'是不一样的
A = 3 2 3 4 1 2 2 4 3>> B=randInter(2,6,3,3)B = 4 5 3 5 4 2 4 6 2>> A*Bans = 34 41 19 29 36 18 40 44 20>> A.*Bans = 12 10 9 20 4 4 8 24 6②向量x、矩阵A大小的测试与查找
●whose命令查看当前工作内变量信息
●length(x)返回向量x的长度
●s=size(A)返回矩阵的大小,s(1)表示A的行数,s(2)表示A的列数。
●[r,c]=size(A), A的行数存于变量,列数存于变量c。
● s=size(A, n)返回矩阵A的第n维的大小。
●length(A)返回A的行数与列数中较大者。
●ndims(A)返回矩阵的维数。
● i=find(条件表达式)或者[r,c]=find(条件表达式),返回表达式为真的元素下标。
此处不再粘代码。。。。
截取矩阵
>> A=[1:4;2:5;3:6;4:7]A = 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7①精确取矩阵中的某一个元素
>> A(4,4)ans = 7
②取矩阵中的某一行
取第四行
>> A(4,:)ans = 4 5 6 7
③取矩阵中的某一列
取第四列
>> A(:,4)ans = 4 5 6 7
④取矩阵中的某些行列
取第1,2行和第3,4列的交汇部分
>> A(1:2,3:4)ans = 3 4 4 5
⑤逆序取某一行
第二行放在第一行的前面
>> A(2:-1:1,:)ans = 2 3 4 5 1 2 3 4
⑥逆序取某一列
取第四列放在第三列的前面
>> A(:,4:-1:3)ans = 4 3 5 4 6 5 7 6
⑦删除某几行
删除前两行
>> A(1:2,:)=[]A = 3 4 5 6 4 5 6 7⑧删除某几列
删除前两列
>> A(:,1:2)=[]A = 3 4 4 5 5 6 6 7⑨同时删除行和列
删除前两行,前两列
>> B(3:4,3:4)ans = 5 6 6 7
- MATLAB——第二天 矩阵
- MATLAB程序设计教程(2)——MATLAB矩阵及其运算
- MATLAB 小知识 第二篇 矩阵运算1
- MATLAB 小知识 第二篇 矩阵运算2
- Matlab命令集——稀疏矩阵函数
- 面向矩阵的编程——【转帖】写给matlab新手
- Matlab实现——求矩阵的逆(LU分解)
- MatLab自学内容——矩阵,图像处理
- MATLAB求矩阵的规模——size & length
- MatLab矩阵运算——图像灰度化
- Matlab命令集——稀疏矩阵函数
- matlab基础学习——向量与矩阵
- 特征提取——生成样本矩阵(MATLAB实现)
- Matlab Tricks(五)—— shuffle 一个矩阵
- Matlab Tricks(六)—— 矩阵乘法的实现
- MATLAB学习笔记01——基本命令和矩阵
- Matlab——输出一个矩阵到txt文件
- MATLAB学习笔记01——基本命令和矩阵
- 第二章第十六题
- H.265:网络视频的高清时代
- android 里面的颜色的RGB
- poj 1845 Sumdiv (算术基本定理求一个数因子和)
- uva 10739 String to Palindrome (dp)
- MATLAB——第二天 矩阵
- MySQL查看最大连接数
- hdu-4578(线段树操作)
- IOS属性修饰词
- IRP中一个CurrentLocation域的理解
- editplus快捷键大全
- iPhone鼎力支持 H.265编码技术及画质PK
- Qt Visual Studio插件 安装失败
- 安全狗IIS6.0解析webshell访问限制bypass