matlab使用reshape时按照列优先原则取元素和摆放元素

参考 http://blog.csdn.net/superdont/article/details/3992033

a=[1  2

3  4]

如果使用b=reshape(a,1,4),则得到的结果是  b=[1 3 2 4]

如果想得到b=[1 2 3 4],  需要使用  b=reshape(a‘,1,4)

因为reshape使用的列优先!(就是说按照列取元素,然后按照列重新放元素)

b转化回去是同样的道理。

例题如下:

>> a=[1 ,2 ;3,4]
a =
     1     2
     3     4
>> b=reshape(a,1,4)
b =
     1     3     2     4
>> b=reshape(a‘,1,4)
b =
     1     2     3     4
>> a=reshape(b,2,2)
a =
     1     3
     2     4
>> a=reshape(b‘,2,2)
a =
     1     3
     2     4

matlab使用reshape时按照列优先原则取元素和摆放元素

时间: 2024-10-31 20:11:07

matlab使用reshape时按照列优先原则取元素和摆放元素的相关文章

列优先与行优先

初用matlab与c/c++混合编程的人,对于列优先和行优先有一些生疏. 看了wiki,发现:行优先和列优先指的是行优先存储和列优先存储. wiki的解释: 以一个定义为为M的3x3矩阵为例:列优先存储指的是MATLAB先保存第一列的3个元素,然后保存第二列的,最后保存第三列的元素,从而这9个矩阵元素在MATLAB中的排序是从1到9,所以在调用矩阵元素时,M(2)指的是第一列的第二个元素,M(6)指的是第二列第三个元素(当然这两个元素也可以用二维的方式调用,M(2)对应M(1,2),M(6)对应

[转载]矩阵及变换,以及矩阵在DirectX和OpenGL中的运用问题:左乘/右乘,行优先/列优先

[转载]http://www.xuebuyuan.com/882848.html (一)首先,无论dx还是opengl,所表示的矢量和矩阵都是依据线性代数中的标准定义的:“矩阵A与B的乘积矩阵C的第i行第j列的元素c(ij)等于A的第i行于B的第j列的对应元素乘积的和.”(实用数学手册,科学出版社,第二版)例如c12 = a11*b11+a12*b21+a12*b13... (二)在明确了这一点后,然后我们再看“矩阵的存储方式”,矩阵存储方式有两种,一种是“行主序(row-major order

(转)思考:矩阵及变换,以及矩阵在DirectX和OpenGL中的运用问题:左乘/右乘,行优先/列优先,...

转自:http://www.cnblogs.com/soroman/archive/2008/03/21/1115571.html 思考:矩阵及变换,以及矩阵在DirectX和OpenGL中的运用1.矩阵和线性变换:一一对应 矩阵是用来表示线性变换的一种工具,它和线性变换之间是一一对应的.考虑线性变换:a11*x1 + a12*x2 + ...+a1n*xn = x1'a21*x1 + a22*x2 + ...+a2n*xn = x2'...am1*x1 + am2*x2 + ...+amn*x

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) 验证代码: 在

how2heap 1:优先原则

how2heap 1:优先原则-------------------------------------------示例代码#include <stdio.h>#include <stdlib.h>#include <string.h> int main(){    printf("This file doesn't demonstrate an attack, but shows the nature of glibc's allocator.\n"

[Devexpress]GridControl 绑定DataSource时GridView列不变化

Devexpress  GridControl 绑定DataSource时GridView列不变化 1.使用VS自带的DataGridView替代 2.数据绑定以后调用 gridView.PopulateColumns()  函数 重新创建列 gcSummary.DataSource = _dtData; gvSummary.PopulateColumns();

查询sql时 改变列原来的类型

查询sql时 改变列原来的类型SELECT   create_time   FROM    ciimp_fin_invoice               本来要查询的 是 创建时间 时间类型 结果为 2017-03-29 03:29:40 SELECT create_time+'' FROM ciimp_fin_invoice 在sql列中 +'' 将其列改变为字符串类型,输出的结果为:20170329032940    + 可扩展 字符串.数字.时间 类型都可以

复制或保存结果时包括列标题

在SSMS(SQL Server Management Studio)中,在复制或保存结果时可以包括列标题. 在查询结果的网格窗口,在右键菜单中选择"连同标题一起复制",即可在复制时包括列标题. 但是,在右键菜单中选择"将结果另存为"时,输出结果时默认不包括列标题. 解决方案:打开"工具"-"选项",在"查询结果"-"SQL Server"-"以网络显示结果"的选项中

easyui 中Datagrid 控件在列较多且无数据时,列显示不全的解决方案

在onLoadSuccess 中加入如下代码就OK啦 $('#dg3').datagrid({ onLoadSuccess:function(data){ if(data.total==0){ var dc = $(this).data('datagrid').dc; var header2Row = dc.header2.find('tr.datagrid-header-row'); dc.body2.find('table').append(header2Row.clone().css({"