Come calcolare il valore medio di alcuni valori di una matrice

di Jon il
3 risposte

Buongiorno,

avrei bisogno di una mano con matlab.. Ho  una matrice A(85,3) per la quale voglio creare una seconda matrice B che abbia come valori i valori medi dati da 5 valori della matrice A presi in ordine. 

Nella posizione B(1,1)  deve ad esempio avere il valore medio di (1:5,1) della A; 

nella posizione B(1,2) deve avere il valore medio di (6:10,1) della A;

nella posizione B(1,3) deve avere il valore medio di (11:15,1) della A;

e così per tutta la prima colonna verticale di A per poi implementarla per le altre due colonne della matrice A generando una matrice B finale del tipo B(17,3)

ho provato con un ciclo for ma me lo calcola solo per alcuni valori.

Grazie mille a tutti 

3 Risposte

  • Prova a vedere se questo ha senso

    >> inizio=[1:85*3];%Valori a caso iniziali
    >> inizio=reshape (inizio, 85, 3);%Ora siamo nella situazione che hai descritto
    >> %Aprendo vedo che il vettore iniziale si è sistemato in colonna
    >> inizio[1:5,1]
     inizio[1:5,1]
           ?
    Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for
    mismatched delimiters.
     
    >> inizio(1:5,1)
    
    ans =
    
         1
         2
         3
         4
         5
    
    >> %Nell'esempio tu chiedi che sia fatta la media di gruppi da 5 elementi in una matrice con 225 elementi 
    >> %Quindi un numero di elementi divisibile per 5
    >> quintine=reshape(inizio, 5, 85*3/5);
    >> %Quintine è una matrice in cui ogni colonna contiene 5 elementi di inizio, in ordine
    >> mean(quintine);
    >> sum(quintine);
    >> risultato=mean(quintine);
    >> %Risultato è una matrice 1*51 in cui ogni elemento contiene la media della corrispondente quintina
  • In Julia :

    using Statistics;
    
    v=range(0,step=5,stop=80);
    A=rand(85,3)
    n_cols=size(A,2)
    B= zeros(17,n_cols)
    
    for i in 1:n_cols
        z=0
        for j in v
             z=z+1
             B[z,i]=mean(A[j+1:j+5,i])
                 
        end
    end 
    B

    Calcoli scientifici con Julia : link rimosso

  • Il codice funziona esattamente così in Matlab?

    Perché questa è la sezione di Matlab. Tu non puoi farla dIventare la sezione di Julia

Devi accedere o registrarti per scrivere nel forum
3 risposte