MATLAB中矩阵的变换 eg:B=A(end:-1:1,:)

B=A(end:-1:1,:)表示将A的行的顺序从尾到头排列构成B,也就是B的第一行对应A的最后一行,第二行对应A的倒数第二行,以此类推。
C=A(:,end:-1:1)则是对A的列做类似倒的排列,得到C

一个矩阵括号里逗号用于间隔不同维度比如A为一维向量,A(1)就表示第一个元素如果A为二维矩阵,那么需要A(m,n)表示第m行,第n列矩阵,若是有冒号,比如A(:,n)就表示那些列数为n,行数为任意的所有制,即去矩阵第n列,相应A(m,:)表示去A的第m行所有元素再来看A(end:-1:1,:),同样逗号前表示行,后表示列,列的部分为冒号,表示列数任意,也就是对A整行整行进行操作;逗号前,end表示最后一行,1表示第1行,-1表示从后到前倒着取出A的整列,一般情况下我们顺序来使用,比如A(2:1:end,:)表示从A第二行取到最后一行,1表示取行时的间隔,若A(2:2:end,:),表示每两行取一行,就是2 4 6行下去到end。列的情况类似就不说了。

原文地址:https://www.cnblogs.com/DLF-dream/p/10398281.html

时间: 2024-11-08 21:58:09

MATLAB中矩阵的变换 eg:B=A(end:-1:1,:)的相关文章

MATLAB基本操作(十):关于OpenCV坐标系与MATLAB中矩阵行与列的对应

OpenCV坐标点与MATLAB中矩阵行与列的对应 Last Edit 2014/5/4 转载请注明出处:http://blog.csdn.net/jxlijunhao 之所以会写这个东西,因为要把OpenCV中得到的角点坐标,保存在txt文件中,然后投影到matlab中. 首先,OpenCV中的坐标系如下图: 所以,OpenCV中以(0,0)为原点,假定一个点(10,2),表示y=10,x=2 在matlab中以  (1,1)为原点,所以上面的点在matlab中应为(11,3) 验证代码: 在

MATLAB中矩阵reshape的顺序规律

MATLAB中矩阵reshape的顺序规律 首先,使用以下代码生成一个(3,4,5)的三维矩阵: count = 0; for i = 1:3 for j = 1:4 for k = 1:5 count = count + 1; M(i,j,k) = count; end end end 如果按照三维坐标中,x,y表示水平轴,z表示垂直轴的话,上面的矩阵可以几何表示为: 使用MM = reshape(M,12,5);将M矩阵转换为(12,5)的二维矩阵,转换后的MM矩阵为: 可见它是按照先排x方

matlab中矩阵求方差函数_____借鉴网上资料

>> a = [    0.0579    0.1389    0.2722    0.4451     0.3529    0.2028    0.1988    0.9318     0.8132    0.1987    0.0153    0.4660     0.0099    0.6038    0.7468    0.4186]; b1 = var(a); % 默认来求b2 = var(a, 0); % 默认的公式(用N-1)c1 = var(a, 1); % 另外的公式(用N)

关于matlab中矩阵左除和右除

%if expression is A * C = B,we want to get C A = [1,3,3;3,1,1;] % 2*3 B = [1,3,3;] %3*1 C = B/A %means inv(A)* B , change to (3*2) *(2*1) = 3*1 A1 =[0,1;-1,-1;1,1] B1 =[1;1;1] C1 = B1\A1 %as normal From the case.We know a and c if a * c = b in  corre

Matlab中的一些小技巧

Matlab中的一些小技巧 1.. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断.MATLAB这时可能正疲于应付,响应会有些滞后. 2. figure命令新建一个绘图窗口 figure 可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口.当有多个figure窗口时,在命令窗口中执行如Plot等命令将覆盖当前figure窗口中的对象.所谓的当前figure窗口,也就是最后一次查看的窗口(可以用

matlab中元胞数组(cell)转换为矩阵

matlab中元胞数组(cell)转换为矩阵. cell转换为矩阵函数为:cell2mat(c),其中c为待转换的元胞数组: 转化之后的矩阵可能不满足我们对矩阵维数的要求,那么也许还需要下面两个函数: ——reshape(A,m,n,p,...),将矩阵A变换为m*n*p*...的矩阵: ——permute(A,[1,3,2]),将矩阵A的第3维和第2维交换,从而满足顺序要求: 下面举一个我自己用过的例子: H——<K*1>cell,其中每个元素为U*S*N*T的四维矩阵(H为WINNERII

Matlab中怎样将.dat格式的文件进行加载转化为一个矩阵??

在网上下载了一个数据集rating.dat,格式为.dat的,要在matlab中使用,必须将其转化为一个.mat格式的矩阵,下面写一下具体步骤: 第一步:打开matlab,界面如图: 然后点击“打开”选项:界面如下 例如选择rating.dat 文件 点击上图右下角“打开”,得到如下界面: 然后在“列分隔符”里进行选择,由于原文本文件格式如下图: 所以选择“列分隔符”中的::,然后选中所有数据,再点击"导入",选择其中的“导入数据”,则得到结果为m*4的矩阵:

matlab中如何求某一个矩阵的标准差和均值

方法: 先reshape成行向量或者列向量 然后,利用mean函数,std函数. 构造测试数据,可以利用random函数,就好.利用这个函数,可以构造不同分布的随机数列(或 矩阵). 如: >> y =random('norm',2,0.3,3,4) y = 2.1391 2.2945 2.0769 2.1751 1.9334 1.6805 1.9315 1.8912 1.8775 1.8126 1.9733 1.7686 >> rows = reshape(y,3*4,1) ro

matlab中排序(矩阵的行排序及列排序)

>> a=[1,2,3;4,6,0;0,5,2] a = 1 2 3 4 6 0 0 5 2 >> sort(a) ans = 0 2 0 1 5 2 4 6 3 >> sort(a,'descend') ans = 4 6 3 1 5 2 0 2 0 即matlab中对矩阵默认按列升序排序;如果降序排序使用sort(a,'descend'),升序使用sort(a,'ascend'), 1 >> sort(a,'ascend') 2 3 ans = 4 5