Módosítása 3D tömböt „terjedése” Fortran

szavazat
0

Próbálom használni Fortran lényegi funkciója terjedt módosítani 3D tömb. Meg szeretném változtatni egy sor alakja (3 3 6) tömbjére alakú (3 18 18). A MATLAB ez megtehető repmat, de próbálják ezt a Fortran eredményezi a hiba: „összeegyeztethetetlen soraiban 3 és 4”.

Nincs probléma alkalmazása elterjedt 1D tömbök, és minden megfelelően működik. Saját kísérlet az volt, hogy elterjedt egy frist lépést, hogy elérjék a forma (3 18 6), majd a második spread (3 18 18), de a hibaüzenet jelenik meg már a frist hívását terjedését.

program example
  implicit none
  integer :: arr(3,3,6)
  integer :: arr2(3,18,6)
  integer :: i,j

  do i = 1,6
    do j = 1,3
        arr(1:3,j,i) = (/1,1,1/)
    end do
  end do

  arr2 = spread(arr,2,6)
  print*, shape(arr2)

end program example

!MATLAB code:
!repmat(arr, 1, 6, 3)

Elvárom és kitűnő alakú (3 18 6) az adott kódot, és azt szeretnénk, ha ez a (3 18 18) a következő lépésben, mint a MATLAB függvény „repmat”, amely képes erre egy lépésben a példakód megadott kommentálta a fenti kódot. A hibaüzenet azt mondja: „összeegyeztethetetlen soraiban 3 és 4”.

A kérdést 10/10/2019 00:45
a forrás felhasználó
Más nyelveken...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more