matlab中的数组与矩阵
2016-10-22 15:43
435 查看
首先介绍数组
在matlab中,有向量,数组,矩阵的概念,本人感觉向量和数组差不多,多行向量就是多维数组,一维向量就是一维数组。
建立一维数组(向量)两种方式:行向量a=[1 2 3]或者a=[1,2,3]
列向量a=[1;2;3]
多维数组a=[1 2 3;2 3 4;3 4 5]这是3*3的数组
向量可以转置,比如b=a’;
数组相关操作
A=[1 2 3;4 5 6;7 8 9];
B=[9 8 7; 6 5 4; 3 2 1];
a=A(1:2,:)-取A数组第几行元素(这里是第1和2行)
a=A(:,1:2)-取A数组第几列元素(这里是第1和2列)
a=A(2:4)-取A数组第2个到第4个元素
a=A(1:end)-将元素正序排列
a=A(end:-1:1)-将元素反序排列
a=A([2 4])-取数组A第2个和第4个元素
a=A(1,2)-取数组第一行第一列元素
C=[A B]-将数组AB横向拼接
C=[A; B]-将数组AB纵向拼接
下面几个操作要熟悉,改变数组内容
A(A=1)=100;%将A数组中为1元素全部变为100
A(A>4)=20;%将A数组中大于4的元素都变为20
A(1,1)=10%将A数组里1行1列元素变为10
下面几个函数判断数组类型
isnumeric();%判断是否为数值型数组
isreal();%判断是否为实数型数组
isinteger();%判断是否为整型数组,(matlab默认存储double型)
islogical();%判断是否为逻辑型数组
find()函数:查找数组元素然后修改元素,具体见下图
sort()-对数组元素进行排序(这个排序是对没列元素排序),默认升序排列,具体见下图:[C,I]=sort(A)-C是排序后数组,I是排序后对应数的位置索引
size()和length()函数
[M,N]=size(A)%返回数组A的行数和列数
M=size(A,1)
N=size(B,2)
length(A)%若A为一维,返回A的长度,若A为二维,返回行列中较大长度值
然后是介绍矩阵(说明:在matlab中无是数组还是矩阵都是按列来存储的)
首先是一些特殊矩阵的建立
zeros(m,n)%建立全0矩阵
ones(m,n)%建立全1矩阵
eye(m,n)%建立对角线全为1 的矩阵
rand(m,n)%(0,1)随机分布的矩阵
randn(m,n)%相比上一个,均值为0,方差为1
magic(m,n)%魔方矩阵
对于矩阵的建立和元素访问,很多和前面介绍的数组相同
下面看图访问矩阵
访问矩阵元素可以用单下标访问和双下标访问
sub2ind()和ind2sub()函数进项访问方式转换;
A=[1:4;5:8]
ind1=sub2ind(size(A),2,3);%将索引(2,3)转变为单下标索引
[i,j]=ind2sub(size(A),7);
矩阵的连接可以用函数cat(dim,A,B);horzcat(A,B);vertcat(A,B)
矩阵还可以进行块操作repmat()函数;
A=[1:3;4:6];
B=repmat(A,2,3)%产生一个2*3大矩阵,每个元素都是矩阵块A
B=repmat(A,[1,3])
对于函数blkdiag(),产生一输入参数为对角线元素的大矩阵。
矩阵的删除操作
比如A=rand(4,4)
对于矩阵的转置,有点注意有复情况。
A=B.’和transpose()一样,矩阵有复数,不发生变化
而用A=B’,则 除了转置外,矩阵中复试要变为共轭复数。
然后是矩阵的尺度变换函数reshape(),注意元素总数不变;
调用形式:Y=reshape(X,m,n);
矩阵的find()函数用法和数组中的find()差不多。sort()排序函数也差不多。
下篇继续介绍矩阵基本知识
在matlab中,有向量,数组,矩阵的概念,本人感觉向量和数组差不多,多行向量就是多维数组,一维向量就是一维数组。
建立一维数组(向量)两种方式:行向量a=[1 2 3]或者a=[1,2,3]
列向量a=[1;2;3]
多维数组a=[1 2 3;2 3 4;3 4 5]这是3*3的数组
向量可以转置,比如b=a’;
数组相关操作
A=[1 2 3;4 5 6;7 8 9];
B=[9 8 7; 6 5 4; 3 2 1];
a=A(1:2,:)-取A数组第几行元素(这里是第1和2行)
a=A(:,1:2)-取A数组第几列元素(这里是第1和2列)
a=A(2:4)-取A数组第2个到第4个元素
a=A(1:end)-将元素正序排列
a=A(end:-1:1)-将元素反序排列
a=A([2 4])-取数组A第2个和第4个元素
a=A(1,2)-取数组第一行第一列元素
C=[A B]-将数组AB横向拼接
C=[A; B]-将数组AB纵向拼接
下面几个操作要熟悉,改变数组内容
A(A=1)=100;%将A数组中为1元素全部变为100
A(A>4)=20;%将A数组中大于4的元素都变为20
A(1,1)=10%将A数组里1行1列元素变为10
下面几个函数判断数组类型
isnumeric();%判断是否为数值型数组
isreal();%判断是否为实数型数组
isinteger();%判断是否为整型数组,(matlab默认存储double型)
islogical();%判断是否为逻辑型数组
find()函数:查找数组元素然后修改元素,具体见下图
sort()-对数组元素进行排序(这个排序是对没列元素排序),默认升序排列,具体见下图:[C,I]=sort(A)-C是排序后数组,I是排序后对应数的位置索引
size()和length()函数
[M,N]=size(A)%返回数组A的行数和列数
M=size(A,1)
N=size(B,2)
length(A)%若A为一维,返回A的长度,若A为二维,返回行列中较大长度值
然后是介绍矩阵(说明:在matlab中无是数组还是矩阵都是按列来存储的)
首先是一些特殊矩阵的建立
zeros(m,n)%建立全0矩阵
ones(m,n)%建立全1矩阵
eye(m,n)%建立对角线全为1 的矩阵
rand(m,n)%(0,1)随机分布的矩阵
randn(m,n)%相比上一个,均值为0,方差为1
magic(m,n)%魔方矩阵
对于矩阵的建立和元素访问,很多和前面介绍的数组相同
下面看图访问矩阵
访问矩阵元素可以用单下标访问和双下标访问
sub2ind()和ind2sub()函数进项访问方式转换;
A=[1:4;5:8]
ind1=sub2ind(size(A),2,3);%将索引(2,3)转变为单下标索引
[i,j]=ind2sub(size(A),7);
矩阵的连接可以用函数cat(dim,A,B);horzcat(A,B);vertcat(A,B)
矩阵还可以进行块操作repmat()函数;
A=[1:3;4:6];
B=repmat(A,2,3)%产生一个2*3大矩阵,每个元素都是矩阵块A
B=repmat(A,[1,3])
对于函数blkdiag(),产生一输入参数为对角线元素的大矩阵。
矩阵的删除操作
比如A=rand(4,4)
对于矩阵的转置,有点注意有复情况。
A=B.’和transpose()一样,矩阵有复数,不发生变化
而用A=B’,则 除了转置外,矩阵中复试要变为共轭复数。
然后是矩阵的尺度变换函数reshape(),注意元素总数不变;
调用形式:Y=reshape(X,m,n);
矩阵的find()函数用法和数组中的find()差不多。sort()排序函数也差不多。
下篇继续介绍矩阵基本知识
相关文章推荐
- MATLAB中矩阵与数组的区别,点运算符的运用
- Matlab 矩阵就是数组 数组就是矩阵
- MATLAB之数组和矩阵
- matlab:矩阵/数组常用操作
- 2017.3.24 MATLAB(三)数组与矩阵
- 【matlab】练习2:矩阵和数组的一般操作
- MATLAB中矩阵与数组的区别,点运算符的运用
- matlab 矩阵/数组使用总结
- matlab---数组、矩阵
- Matlab教程1_矩阵(数组) _ 元胞数组
- Matlab软件的矩阵和数组操作
- Matlab--矩阵和数组
- Matlab教程1_矩阵(数组) _ 元素的标识与寻访
- MATLAB中矩阵与数组的区别,点运算符的运用
- matlab入门笔记(二):矩阵和数组
- Matlab教程1_矩阵(数组) _ 多元数组
- matlab中() [] {} 数组 向量 矩阵
- matlab(数组、矩阵)
- matlab 数组 向量 矩阵
- Matlab教程1_矩阵(数组) _ 二维数组的创建