Fortran "yayılmasını" kullanarak 3D dizinin değiştirilmesi,

oy
0

Bir 3D diziyi değiştirmek için FORTRAN içsel işlev yayılmasını kullanmaya çalışıyorum. I şeklinde bir dizi (3 18 18) şekil (3 3 6) bir dizi değişiklik istiyoruz. Uyumsuz saflarına 3 ve 4: MATLAB bu repmat kullanarak, ancak hata Fortran sonuçlarında bu çalışıyor yapılabilir.

Ben 1D diziler için sorun uygulayarak yayılmasını ve her şeyin beklendiği gibi çalışır. Benim girişimi bir şekli (3 18 6) ve daha sonra (3 18 18) için ikinci bir yayılmasını sağlamak için bir frist adımda yayılmasını kullanmaktı, ama hata yayılmasının frist çağrısı zaten görünür.

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)

Ben bekliyoruz ve verilen kodda şekli (3 18 6) dizi ve sadece kod örneği tarafından tek adımda bunu yapabilirsiniz matlab fonksiyonu repmat gibi bir sonraki adımda (3 18 18) bu almak istiyorum yukarıda yorumladı koduyla verilir. Hata mesajı şöyle diyor: uyumsuz rütbeleri 3 ve 4.

Oluştur 10/10/2019 saat 00:45
kaynak kullanıcı
Diğer dillerde...                            

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