fortran 定义矩阵元素位置问题不会处理矩阵元素的位置:write 的格式是write(*,*)但是具体规定的时候就不会了,如:write(*,"(I3,I3/,I3,I3)")((m(r,c),c = 1,2),r = 1,2)是下面小程序的(I3,I3/,I3,program mainimp

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 19:05:12
fortran 定义矩阵元素位置问题不会处理矩阵元素的位置:write 的格式是write(*,*)但是具体规定的时候就不会了,如:write(*,

fortran 定义矩阵元素位置问题不会处理矩阵元素的位置:write 的格式是write(*,*)但是具体规定的时候就不会了,如:write(*,"(I3,I3/,I3,I3)")((m(r,c),c = 1,2),r = 1,2)是下面小程序的(I3,I3/,I3,program mainimp
fortran 定义矩阵元素位置问题
不会处理矩阵元素的位置:
write 的格式是write(*,*)
但是具体规定的时候就不会了,如:
write(*,"(I3,I3/,I3,I3)")((m(r,c),c = 1,2),r = 1,2)是下面小程序的
(I3,I3/,I3,
program main
implicit none
integer,parameter ::row = 2
integer,parameter ::col = 2
integer ::m(row,col)
integer r 用来赋值row
integer 用来赋值column
data((m(r,c),r = 1,2),c=1,2)/1,2,3,4/
write(*,"(I3,I3/,I3,I3)")((m(r,c),c = 1,2),r = 1,2) 重点是这一行
end
这样输出的结果是:
1 3
2 4
如果那行换成write(*,*) ((m(r,c),c = 1,2),r = 1,2)
则输出的结果是
1 3 2 4
如果那行换成write(*,*) m
则输出的结果是
1 2 3 4
为什么会有这样的区别,原本设的是二维数组,怎么最后输出来就变成一维的了

fortran 定义矩阵元素位置问题不会处理矩阵元素的位置:write 的格式是write(*,*)但是具体规定的时候就不会了,如:write(*,"(I3,I3/,I3,I3)")((m(r,c),c = 1,2),r = 1,2)是下面小程序的(I3,I3/,I3,program mainimp
(I3,I3/,I3,I3)
意思是,输出两个 I(整数)3(长度),然后换行(/),然后再输出两个整数,长度3
这是格式化输出.与数组没有什么关系.
因为有一个 / ,所以换行以后就是2行.
Fortran 的存储是列优先的.所以
write(*,*) m 结果是 1 2 3 4
他相当于 write(*,*) ((m(r,c),r = 1,2),c = 1,2) {Fortran 是列优先的,所以默认是先循环列,再循环行}
而 write(*,*) ((m(r,c),c = 1,2),r = 1,2) 先循环行,再循环列,则结果是 1 3 2 4
注意 r 和 c 的顺序.
最后一个很严重的错误!
二维数组,一维数组,是内存里的格式.它与输出一行,两行没有关系.
一维数组可以输出成一行,也可以输出成两行.
二维数组也可以输出成一行,也可以输出成两行.
他们也可以输出成三行,四行.只要你喜欢,可以按照任何方式输出.这不影响他在程序里是几维数组.

fortran 定义矩阵元素位置问题不会处理矩阵元素的位置:write 的格式是write(*,*)但是具体规定的时候就不会了,如:write(*,(I3,I3/,I3,I3))((m(r,c),c = 1,2),r = 1,2)是下面小程序的(I3,I3/,I3,program mainimp 如何用Fortran求矩阵中某元素的位置 Fortran矩阵输出问题 Fortran怎么计算矩阵中元素的个数 如何随机提取matlab矩阵中一个元素的位置关于matlab矩阵问题 Fortran 如何定义function fortran中矩阵元素如果是复数 而我要计算该矩阵自身相乘n次 该怎么处理 matlab矩阵元素位置怎么返回? fortran程序求矩阵特征值, Fortran中怎么定义单位 fortran题求解,急,7、求3×4矩阵中的最大元素和最小元素,及其位置.8、下列程序功能是:从键盘输入一个正整数,如果该数为素数,则输出该素数,否则输出该数的所有因子(除去1与其自身).LOGICA 写出一个“求3*4矩阵中的最大元素和最小元素”的fortran程序,本人程序小白,望能详细解读下, lingo 里矩阵乘法 是对应位置元素相乘吗? matlab中两个矩阵对应操作的问题比如两个个矩阵Aij和Bij,大小相同,我想求得A中每列最小值的位置,然后在B中提取相应位置的元素组成一个向量,怎么实现 线性代数 矩阵相乘的问题图中矩阵C=AB, C是m*s矩阵,他的定义为什么是元素相乘的和?那不成一个数了吗 线性代数的一个问题.把单位矩阵第一行和第三行交换位置得出的矩阵算是对角矩阵么?如果是请说明为何特征值不等于主对角线的元素;如果不是请说明理由. matlab定义未知矩阵要定义一个未知元素矩阵,已知行和列怎么定义,比如一个1*3的矩阵~就是要一个空矩阵~ fortran中定义参数是否区分大小写