Fortran 千本ノック 2
11本目 行列を"行""列"の順番でつくる!
integer,dimension(8)::arr integer,dimension(2,4)::arr2 arr = (/1,2,3,4,5,6,7,8/) arr2 = transpose(reshape(arr,(/4,2/))) ! ! ko iu gyouretu ni naru ! ! 1 2 3 4 ! 5 6 7 8
12本目 行列の行にアクセス!
integer,dimension(8)::arr integer,dimension(2,4)::arr2 arr = (/1,2,3,4,5,6,7,8/) arr2 = transpose(reshape(arr,(/4,2/))) v = arr2(2,:) ! v ha -> 5 6 7 8
13本目 doループをする!
do i = 1,10 print *, "i = ",i end do
14本目 内積を計算する!
implicit none integer,dimension(2,3)::a integer,dimension(3,1)::v integer,dimension(2,1)::res integer::i,j,s a = transpose(reshape((/1,2,3,4,5,6/),(/3,2/))) v = transpose(reshape((/1,2,3/),(/1,3/))) ! ko iu jyoutai ! ! [ 1 2 3 ].[1] ! [ 4 5 6 ] [2] ! [3] do i = 1,2 s = 0 do j = 1,3 s = s + a(i, j) * v(j,1) end do res(i,1) = s end do print *,"res = ",res