MATLAB_

di il
4 risposte

MATLAB_

Salve a tutti,
avrei un problema..sto creando un codice in matlab che mi dovrebbe cambiare dei valori di un file testo (che possiedo) con i valori di un altro file testo (che possiedo)..il problema è che nel primo file.txt ho 60 valori disposti su due colonne da 30 elementi..nel secondo file txt ho sempre i 60 valori ma su 4 colonne..come faccio a spezzare le mie due colonne in 4 con un comando in matlab?
Grazie

4 Risposte

  • Re: MATLAB_

    Non è chiaro quale sia il problema:

    [*] vuoi scrivere i valori del secondo file di testo nel formato del primo (2 colonne da 30 elementi)?
    [*] riesci a leggere correttamente i files di testo?
    [*] vuoi solo "trasformare" una matrice (15 x 4) in una matrice (30 x 2)?
    [*] vuoi solo "trasformare" una matrice (30 x 2) in una matrice (15 x 4)?
    [*] per i due punti precedenti, come vuoi riorganizzare i dati? In sequenza? In un modo particolare? Pubblica un esempio della matrice iniziale e di quella finale, in modo che sia chiaro come devono essere modificate.

    Per gli ultimi due punti potresti utilizzare la funzione "reshape"
  • Re: MATLAB_

    0.0 1
    0.1 2
    0.2 3
    0.3 4
    0.4 5
    0.5 6
    0.6 7
    0.7 8
    questo sarebbe un esempio nel quale il mio comando di matlab mi restituisce i dati invece, affiché vada a buon fine la sostituzione dei nuovi dati (nel formato a due colonne) con i vecchi, dovrei riportarmi alla seguente forma:
    0.0 1 0.4 5
    0.1 2 0.5 6
    0.2 3 0.6 7
    0.3 4 0.7 8
    in cui esattamente la colonna è stata spezzata in due parti uguali e affiancata..
    dopo aver creato le matrici sto sostituendo uno per uno i valori indicandone la posizione poichè non riesco a trovare un comando più speditivo...

    Grazie in ogni caso per l'aiuto..
  • Re: MATLAB_

    Avendo definito "M1" la prima matrice:
    
    M1=[0.0 1
    0.1 2
    0.2 3
    0.3 4
    0.4 5
    0.5 6
    0.6 7
    0.7 8 ]
    
    puoi scrivere:
    
    L=length(M1)
    M2=[x(1:L/2,:) x(L/2+1:end,:)]
    
    Per ottenere:
    
    M2 =
    
          0       1.0000    0.4000    5.0000
        0.1000    2.0000    0.5000    6.0000
        0.2000    3.0000    0.6000    7.0000
        0.3000    4.0000    0.7000    8.0000
    
  • Re: MATLAB_

    Grazie mille!!!!
Devi accedere o registrarti per scrivere nel forum
4 risposte