我有
给出的排名第一阵列COMPLEX(KIND = DBL),DIMENSION(DIMJ)::INITIALSTATE
我如何将其排名转换为
DIMENSION(DIMJ,1)
所以我可以对它执行矩阵运算 - 转置等。
请注意,更改很简单。在这两种情况下,我们都有一个列向量。但Fortran不会以第一种形式传播数组。假设DIMJ
是初始化的整数。
另外,很明显,我希望在操作之后,复数在正确的位置保持完整。
是否可以在fortran中执行此类操作?
答案 0 :(得分:1)
如果您只想要一个临时只读版本的数组,可以随时使用RESHAPE
:
TRANSPOSEDSTATE = transpose(reshape(INITIALSTATE, (/ DIMJ, 1 /)))
但这不会改变INITIALSTATE
变量的形状。此外,这与
TRANSPOSEDSTATE = reshape(INITIALSTATE, (/ 1, DIMJ /))
不需要transpose
。