列优先与行优先

初用matlab与c/c++混合编程的人,对于列优先和行优先有一些生疏。

看了wiki,发现:行优先和列优先指的是行优先存储和列优先存储。

wiki的解释:

以一个定义为为M的3x3矩阵为例:列优先存储指的是MATLAB先保存第一列的3个元素,然后保存第二列的,最后保存第三列的元素,从而这9个矩阵元素在MATLAB中的排序是从1到9,所以在调用矩阵元素时,M(2)指的是第一列的第二个元素,M(6)指的是第二列第三个元素(当然这两个元素也可以用二维的方式调用,M(2)对应M(1,2),M(6)对应M(2,3));行优先存储则刚好相反,先保存第一行的3个元素,再保存第二行和第三行的元素。

如,我们调用matlab的fscanf函数来读入文本文件中的数据到矩阵。

数据的读入顺序都是按照文本的顺序,一个接一个的读。

行优先:存储的矩阵模式与文本排列的模式一致

列优先:存储的矩阵模式为,按照列的格式存储,一列存满了,接着存储第二列。

时间: 2024-10-09 10:26:35

列优先与行优先的相关文章

[转载]矩阵及变换,以及矩阵在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

关于SQL Server将一列的多行内容拼接成一行的问题讨论(转载)

说明:本文仅供分享,版权属于原作者. 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行 比如表中有两列数据 : ep_classes  ep_name AAA         企业1 AAA         企业2 AAA         企业3 BBB         企业4 BBB         企业5 我想把这个表变成如下格式: ep_classes      ep_name AAA           

获取所有分组中某列最大的行

怎么获取所有分组中某列最大的行?下面用一个例子来说明下: 一共公司有若干员工,每个员工有各自的id, group_id(部门), salary(工资).现在的问题转变为 求公司各部门最高工资的员工 首先明确一个问题,一个部门的若干个员工可能同时拥有最高的工资,需要都列举出来. 看一下员工的数据库表结构(只包含有用的列): Field Type Null Key Default Extra id int(11) NO PRI NULL   group_id int(11) YES   NULL  

Oracle一列的多行数据拼成一行显示字符

Oracle一列的多行数据拼成一行显示字符 oracle 提供了两个函数WMSYS.WM_CONCAT 和 ListAgg函数. www.2cto.com 先介绍:WMSYS.WM_CONCAT 例: id  name 1   aa 2   bb 3   cc 要的结果是"aa,bb,cc" select WMSYS.WM_CONCAT(a.name) from user a 这样的话,查询出的结果:"aa,bb,cc" www.2cto.com 分隔符如果不需要用

读取文档数据的各列的每行中

读取文档数据的各列的每行中 1.该文件的内容被读 [[email protected] leekwen]# cat userpwd 1412230101 ty001 1412230102 ty002 1512430102 ty003 1511230102 ty004 1411230102 ty002 1411240102 yt005 1412290102 yt012 1510230102 yt022 1512231212 yt032 2.脚本命令 [[email protected] leekw

列转行且行转列

原数据格式如下: 这是学生的成绩表,每科为一列,要求转换为下面的格式: 即,把把课程列转换为行,把学生行转换为列: 建表: create table #a(name varchar(20),english int,chinese int ,math int)insert into #a values( 'zhangsan',10,39,40)insert into #a values( 'lisi',16,25,36) 思路:先把列转换为行: select name,km,scorefrom(s

关于SQL Server将一列的多行内容拼接成一行的问题讨论

昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行 比如表中有两列数据 : ep_classes  ep_name AAA         企业1 AAA         企业2 AAA         企业3 BBB         企业4 BBB         企业5 我想把这个表变成如下格式: ep_classes      ep_name AAA             企业1,企业2,企业3 BBB  

菜单数据(树形)结构的使用-- ---数据的列存储转换为行存储

一.菜单数据表中的存储结构 二.转换后的数据结构 三. 转换过程 1.确定菜单数据的最大级别 /// <summary> /// 获得Nature定义的最大目录级别,以便于确定Nature的DataTable表结构中的列数目 /// </summary> /// <returns></returns> public int GetMaxNatureLevel() { if (dtNature == null && dtNature.Rows.