0
在MATLAB我用来写像这样提取的行或列从2D阵列的2D阵列
A = [1,2;3,4]
B = A(:,1)
所以我提取矩阵A的第一列,并将其存储在矩阵B,这是只是一个矢量或一个2x1矩阵。但是我不能在Fortran中这样做,因为它将A(:,1)
视为一维数组,因此如果我想将它分配给大小为2x1的“矩阵”B,则会给我一个错误。 这是用Fortran一个小例子:
program test
implicit none
double complex, dimension(:,:), allocatable :: A, B
allocate(A(2,2), B(2,1))
A = transpose(reshape((/ 1, 2, 3, 4/), shape(A)))
B = A(:,1) !gives error that shape mismatch
end program test
因为我不想在我的算法分别处理的载体,我怎么能实现像Matlab的行为?
谢谢大家的帮助。不幸的是我找不到旧帖子。不过,我也会在那里赞助那个赞助者;) –