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的行爲?
謝謝大家的幫助。不幸的是我找不到舊帖子。不過,我也會在那裏贊助那個贊助者;) –