逐列矩阵元素的向量种群

时间:2017-12-21 20:15:47

标签: fortran gfortran

我的IDE是CodeBlocks 16.01。 这是我的代码:

Program Matrix_To_Vector

Implicit none

Integer::i,j
Integer, parameter :: M = 3 , N = 2
Integer, dimension ( M , N ) :: Matrix_0
Integer, dimension ( M*N ) :: Vector_0

! Population of matrix

Do i = 1 , 3

   Do j = 1 , 2

      Matrix_0(i,j) = i+j

   End Do

End Do

Open (15, File = 'Result.txt', Status = 'Unknown', Action = 'Write')

  Do i = 1 , 3

     Write(15,*) Matrix_0(i,:)

  End Do

  Write(15,*) ( Vector_0(i), i =1 , size(Vector_0))

Close (15)

End Program Matrix_To_Vector

矩阵群的结果是:

2 3
3 4
4 5

我的目的是使用矩阵Vector_0中的元素制作向量Matrix_0。向量的大小为M*N。向量的第一个元素是来自矩阵的(1,1),最后一个是(3,2) - 我想逐列进行。 是否有办法做do循环? 想要向量的对象是: 2 3 4 3 4 5

1 个答案:

答案 0 :(得分:0)

像这样?

do j=1,2
 vector_0(3*(j-1)+1:3*(j-1)+3)=Matrix_0(:,j)
enddo

当然你可以做到

vector_0=reshape(matrix_0,shape(vector_0))

以及