Ho un problema con un ciclo for.. come posso risolverlo?

di il
5 risposte

Ho un problema con un ciclo for.. come posso risolverlo?

Salve a tutti
Devo estrarre da una matrice (profondità x giorni) alcune profondità. Ovvero dal fondale-10 metri, fondale-100 metri, fondale-200metri,fondale-300metri e 10 metri.
X1 è un vettore 1x60 e contiene tutte le profondità dal fondo a 0 metri. Successivamente ho provveduto ad estrarre le varie profondità.
nel ciclo for realizzato mi permette di estrarre le profondità che voglio analizzare solo che mandando il RUN mi realizza una matrice 365x6 con solo l'ultima colonna i valori della componente della velocità riferita alla profondità di 10 metri, mentre le altre componenti della velocità di ogni profondità le rende nulle. Cosa ho sbagliato nel ciclo for al fine di avere tutte le componenti della velocità per ogni profondità?
GRAZIE MILLE A TUTTI

X1;
BottomR=X1(1,1);
LivelliR=[BottomR (BottomR-10),((BottomR-100:-100:100)), 10];

for N=[1 2 3 4 5 6]
Livelli=LivelliR(1,N)
NEWL=abs(X1-Livelli) %ok

NL=find(NEWL==min(NEWL))
Prof=X1(1,NL)
PROFeU(:,NL)= U2002(:,NL)
end
UTOT2002(:,N)=[PROFeU(:,NL)]

5 Risposte

  • Re: Ho un problema con un ciclo for.. come posso risolverlo?

    Hai provato ad eseguire il codice in modalità debug?

    Affinchè sia possibile testare il tuo codice, devi pubblicare i dati di input (o almeno una parte significativa di essi).
  • Re: Ho un problema con un ciclo for.. come posso risolverlo?

    D 484,623 468,811 452,984 437,183 421,445 405,805 390,298 374,954 359,802 344,868 330,176 315,747 301,6 287,752 274,218 261,01 248,137 235,61 223,435 211,617 200,16 189,066 178,337 167,973 157,972 148,333 139,053 130,128 121,555 113,33 105,446 97,8982 90,6818 83,7903 77,2176 70,9577 65,0041 59,3506 53,991 48,919 44,1286 39,6138 35,3689 31,3881 27,6662 24,198 20,9785 18,0032 15,2676 12,7677 10,4998 8,46037 6,64635 5,05493 3,68365 2,53042 1,59346 0,871361 0,363054 0,0678306
    2 0,00143561 0,00030738 -0,000572748 -0,00170876 -0,0031167 -0,0042537 -0,00498615 -0,00512873 -0,00438606 -0,00291324 -0,00127683 0,000494614 0,00216116 0,00299145 0,00159385 -0,00267942 -0,00797664 -0,0125094 -0,0161887 -0,0186536 -0,0194448 -0,019168 -0,0187711 -0,0184367 -0,0177954 -0,0176747 -0,0189912 -0,0212859 -0,0224785 -0,0232446 -0,0214447 -0,0171577 -0,0141443 -0,0121681 -0,0106713 -0,00947873 -0,00849698 -0,00766888 -0,00695716 -0,00633612 -0,00578712 -0,00529612 -0,00485207 -0,00444602 -0,00407041 -0,00371861 -0,00338458 -0,00306253 -0,00274666 -0,00242993 -0,00209965 -0,00173588 -0,00131701 -0,00081563 -0,000192914 0,000584183 0,0014677 0,00228698 0,00290239 0,00324358
    3 0,00572555 0,00614573 0,00709151 0,00765974 0,00757658 0,00690585 0,00591348 0,00495131 0,00403965 0,00329238 0,00302977 0,00305496 0,00270876 0,00166774 -0,000119825 -0,00277657 -0,00612101 -0,0096508 -0,012581 -0,0143568 -0,015 -0,0147957 -0,0141569 -0,0132545 -0,0122954 -0,0113454 -0,00986202 -0,00810865 -0,00628331 -0,00403531 -0,0079261 -0,0095779 -0,00935735 -0,00889283 -0,00852469 -0,00829068 -0,00818143 -0,00818249 -0,00828142 -0,00846861 -0,00873698 -0,00908154 -0,00949909 -0,00998801 -0,0105482 -0,0111809 -0,011889 -0,0126771 -0,013552 -0,0145253 -0,0156257 -0,016908 -0,0184271 -0,0202407 -0,0223926 -0,0248419 -0,0273914 -0,0297738 -0,0317848 -0,0329998


    queste sono le prime 3 righe dei dati per esempio. la prima riga sono le profondità.. i numeri 2 e 3 all'inizio sono i giorni e gli altri numeri le velocità. Cos'è questa modalità debug?
  • Re: Ho un problema con un ciclo for.. come posso risolverlo?

    Comunque ho quasi risolto il problema. Adesso la matrice PROFeU contiene tutti i valori che mi interessano oltre che i valori nulla quelli che ha scartato. Per creare la matrice con solo i valori non nulli come posso scriverlo? Solo questo mi manca per finire il lavoro.
  • Re: Ho un problema con un ciclo for.. come posso risolverlo?

    Cos'è questa modalità debug?
    Il "debug" di un codice è la procedura tramite la quale si esamina il funzionamento di un codice nel caso questo non "funzioni" come ci si aspetta e / o nel caso nel quale lo stesso generi dei messaggi di errore.

    https://it.mathworks.com/help/matlab/matlab_prog/debugging-process-and-features.html

    E' una procedura standard, non è pensabile scrivere un codice (in qualunque linguaggio di programmazione) senza conoscere ed utilizzare il debug.

    Ad ogni modo,
    Comunque ho quasi risolto il problema. Adesso la matrice PROFeU contiene tutti i valori che mi interessano oltre che i valori nulla quelli che ha scartato.
    se hai modificato il codice, dovresti pubblicare la nuova versione; come pensi che ti si possa aiutare ad aggiornare il codice se non lo si conosce?
  • Re: Ho un problema con un ciclo for.. come posso risolverlo?

    For N=[1:1:6]
    Livelli=LivelliR(1,N);
    NEWL=abs(X1-Livelli);
    NL=find(NEWL==min(NEWL));

    Prof=X1(1,NL);
    PROFeU(:,NL)=U2002(:,NL)
    end

    ecco il codice è questo. ora la matrice PROFeU contiene tutti i valori sia nulli sia quelli in cui voglio ottenere. per eliminare la colonna nulle come potrei fare adesso?
Devi accedere o registrarti per scrivere nel forum
5 risposte