FAQ之 文件行列与二维数组行列 [我来说两句]

最新 最热

评论列表(评论 7)以下网友评论只代表网友个人观点,不代表本站观点。

2020-06-15 22:27:37 Geass(Geass)
‘大家习惯上,把前面的维度称为列,后面的维度称为行’这一句话,把关于Fortran的行与列的困惑全部消除了,最先接触C,现在用Fortran,对Fortran二维数据下标的表达一直很迷糊,现在是越看越精神了。哈哈
回复 支持1
2016-12-06 23:09:17 guan123(guan123)
hangmuyang 于 2014-03-07 09:56:57发布
"为了人们交流的方便,大家习惯上,把前面的维度称为列,后面的维度称为行。"
这句话是不是有错啊,应该是习惯上前面的维度称为行,后面的维度称之为列。Fortran存储结构中列占优,所以数组存储中先把列号小的按行的编号先存储,进而再改变列的值。
chuxf 于 2014-03-07 19:13:58发布正如我所言,这是习惯上的问题。在我接受的教育里,前面维度为列,因此优先存储。
在一般计算中把哪个维作为列或者行,都没有什么关系,只要统一了就行。但要用到MKL函数库时,比如矩阵的乘积GEMM,就必须把前面的维度当成行,也就是常用的书写习惯,这样才是对的。拿一个2x2的矩阵和2x1的向量相乘,试下就知道了。所以一楼所说的问题还是值得商榷,在计算中还是要注意。
回复 支持3
2015-10-20 15:33:46 atmosphere_sun(atmosphere_sun)
觉得和数组声明时把哪一维当作行,哪一维当作列有很大关系,以前一直把第一维当做行,第二行当作列,拜读本文后觉得,第一维当做列,第二维当做行,会使得存储顺序和文本读取的顺序一致,会方便很多。
回复 支持3
2015-03-20 19:54:03 luosidinger(luosidinger)
看了两遍有点迷糊,把例子程序输进去(创建相应的文本数据)最后观察到输出到显示器上的数据,却如楼主所说,以前从没考虑这么深,以前听老师讲课说数组第一个下标是行第二个才是列,这篇文章彻底解决了我错误的根源,也让我了解了数据在文本文件里的存储(直观让人看见的)和数据在内存中的存储(看不见的)方式的不同,获益良多。谢谢楼主
回复 支持2
2014-04-02 22:28:39 小鱼(岸边的鱼)
拜读了N遍了,还是有些头晕,哎。。。
回复 支持4
2014-03-07 19:13:58 楚香饭(楚香饭)
hangmuyang 于 2014-03-07 09:56:57发布
"为了人们交流的方便,大家习惯上,把前面的维度称为列,后面的维度称为行。"
这句话是不是有错啊,应该是习惯上前面的维度称为行,后面的维度称之为列。Fortran存储结构中列占优,所以数组存储中先把列号小的按行的编号先存储,进而再改变列的值。
正如我所言,这是习惯上的问题。在我接受的教育里,前面维度为列,因此优先存储。
回复 支持1
2014-03-07 09:56:57 hangmuyang(hangmuyang)
"为了人们交流的方便,大家习惯上,把前面的维度称为列,后面的维度称为行。" 这句话是不是有错啊,应该是习惯上前面的维度称为行,后面的维度称之为列。Fortran存储结构中列占优,所以数组存储中先把列号小的按行的编号先存储,进而再改变列的值。
回复 支持4
对该文发表评论
我的态度:

    登录 | 注册 需要登陆才可发布评论
请您注意:
  • 自觉遵守:爱国、守法、自律、真实、文明的原则
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
  • 严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 您在本站评论发表的作品,本站有权在网站内保留、转载、引用或者删除
  • 参与本评论即表明您已经阅读并接受上述条款