我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合特肖 > 访问矩阵 >

matlab中如何利用向量作为矩阵索引访问相应元素

归档日期:06-06       文本归类:访问矩阵      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  2014-06-10展开全部n维矩阵有两个下标,n维向量只能提供一个下标。当然你可以采用单下标访问方式。

  而A(1,a)显示的是A(1,1),A(1,3),A(1,4)……的结果

  展开全部n维矩阵有两个下标,n维向量只能提供一个下标。当然你可以采用单下标访问方式。

  在使用这三种方法之前,大家头脑一定要清晰的记住,Matlab中数组元素是按列存储(与Fortran一样),比如说下面的二维数组

  Matlab的存储顺序是8,3,4,1,5,9,6,7,2,也就是说先行后列,对于3维数组呢,就是先行后列再页

  从上面的例子中已经很清晰的说明了下标和索引的区别了,也就是说Matlab为没有个元素分配了一个唯一识别的ID(即index)

  A(ii,jj):其中ii和jj可以是一维向量、标量、“:”号或者“end”

  大家对下标估计比较熟悉,由于在C语言中接触过,但是我这里需要强调的是,Matlab的下标是可以多行多列同时引用的,而像C语言等一次只能引用一个,比如

  A(:,end)表示引用最后一列元素,“:”表示所有列或行,“end”表示最后一列或列,“end-n”表示倒数第n行或列

  A(index):index可以是任意的数组,index的元素必须是正整数,且不大于numel(A),返回的是一个尺寸与index一样的数组

  下标和索引之间可以通过ind2sub和sub2ind函数相互转换,具体可以看帮助,很简单

  A(X):X是一个有0和1组成布尔型数据,且size(A)=size(X),对应位置为1则留下该数据,0则去掉,最后按A中的存储顺序,返回一个列向量

  x=A5%是有了比较语句,返回布尔型数据,对应位置数据大于5的为1,否则为0

  A(x)%返回大于A中大于5的元素,其实该命令可以一次性执行A(A5)或者find(A5),前者返回具体元素,后者返回大于5的数据的索引值

  x=linspace(X1,X2):在X1和X2间生成100个线性分布的数据,相邻的两个数据的差保持不变。构成等差数列。

  x=linspace(X1,X2,n): 在X1和X2间生成n个线性分布的数据,相邻的两个数据的差保持不变。构成等差数列。

  1)直接输入:将数据括在[]中,同一行的元素用空格或逗号隔开,每一行可以用回车或是分号结束

  5)函数rand 函数rand用来生成[0,1]之间均匀分布的随机函数,其调用格式是:

  6)函数randn 函数rand用来生成服从正态分布的随机函数,其调用格式是:

  Y=randn(size(A)):生成与矩阵A大小相同的服从标准正态分布的随机矩阵

  B=reshape(A,m,n):返回的是一个m*n矩阵B,矩阵B的元素就是矩阵A的元素,若矩阵A的元素不是m*n个则提示错误。

  B=reshape(A,m,n,p):返回的是一个多维的数组B,数组B中的元素个数和矩阵A中的元素个数相等

  B=reshape(A,siz) : 由向量siz指定数组B的维数,要求siz的各元素之积等于矩阵A的元素个数

  B=repmat(A,m,n):返回值是由m*n个块组成的大矩阵,每一个块都是矩阵A。

  B=repmat(A,[m,n,p,…]):返回值B是一个多维数组形式的块,每一个块都是矩阵A

  B=rot90(A,k):矩阵B是矩阵A沿逆时针方向旋转k*90。得到的(要想顺时针旋转,k取-1)

  1) 对角线函数 对角线函数diag既可以用来生成矩阵,又可以来提取矩阵的对角线元素,其调用格式:

  a) A=diag(v,k):当v是有n个元素的向量,返回矩阵A是行列数为n+k的方阵。向量v的元素位于A的第k条对角线 对应主对角线对应主对角线对应主对角线以下。

  c) v=diag(A,k):提取矩阵A的第k条对角线上的元素于列向量v中。

  b) L=tril(A,k):提取矩阵A的第k条对角线 对应主对角线对应主对角线对应主对角线) 上三角阵的提取 函数triu,调用格式:

  b) U=triu(A,k): 提取矩阵A的第k条对角线 对应主对角线对应主对角线对应主对角线以下。

本文链接:http://shawntierney.com/fangwenjuzhen/423.html