Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Fortran: Array multidimensione

    Ciao a tutti!
    Scusate il quesito di basso profilo, ma sono bloccato in uno script su un problema banale. Devo costruire una matrice in cui ciascuna colonna è letta esternamente da file differenti. Dopo aver letto i singoli array (mi fermo a 3 nell'esempio: x(i), y(i) e z(i)) vado a scrivere la matrice con un semplice ciclo:

    real, dimension(dim_max, 3)
    ...
    do i= 1, dim_max
    do k= 1, 3
    if (k==1) A(i,k)= x(i)
    if (k==2) A(i,k)= y(i)
    if (k==3) A(i,k)= z(i)
    enddo
    enddo

    Mi restituisce una matrice che non ha nulla a che fare con quello che vorrei!
    Qualcuno mi sa dire dov'è l'errore?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: Fortran: Array multidimensione

    Originariamente inviato da lillo90
    Scusate il quesito di basso profilo
    Non è questa la cosa importante, piuttosto essere chiari nel quesito ...

    Mi restituisce una matrice che non ha nulla a che fare con quello che vorrei!
    Ecco ... questo non è chiaro ... cosa ottieni e cosa vorresti ottenere dovresti dircelo tu ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Posta il contenuto del file e l' output che hai.
    Comunque ti ricordo che in fortran le matrici sono memorizzate per colonne, non per righe come in C.

  4. #4
    Si, scusa.
    Quello che vorrei ottenere è una matrice a tre colonne composta dai tre vettori x, y e z. Quello che ottengo è un array monodimensionale (quindi una sola colonna) con i dati "esatti" (cioè quelli contenuti nei vettori in input) inframmezati da "0.0000".

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    No ... non ho capito ... ma che vuoi dire ...?

    A(i,k)

    è un matrice ... che vuoi dire che hai un "array monodimensionale"?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Mi sa che stai confondendo le righe con le colonne, prova così:

    codice:
    do i= 1, dim_max
    do k= 1, 3
    if (k==1) A(k,i)= x(i)
    if (k==2) A(k,i)= y(i)
    if (k==3) A(k,i)= z(i)
    enddo
    enddo
    Non sono pratico di fortran, ma dovrebbe andare.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.