Isolare una riga in una matrice

di il
1 risposte

Isolare una riga in una matrice

Buongiorno a tutti
ho un problema con matlab devo scrivere un programma che mi identifichi un valore in un vettore, trovato questo valore il programma deve fare la somma di tutte le colonne di una matrice legata a questo vettore però solo dei valori sopra alla riga in cui ha trovato il valore.
come posso fare?

grazie

Angelo

1 Risposte

  • Re: Isolare una riga in una matrice

    La domanda non è molto chiara: non si capisce quale relazione ci sia tra il "vettore" e la matrice.
    In base alla seconda parte della domanda sembra che il vettore sia, in realtà una riga della matrice.
    Se così fosse, si conosce già quale sia la riga gli elementi della quale si vogliono sommare.
    Nello script in calce, un valore "val" viene ricercato all'interno di un matrice; se viene trovato viene fatta la somma degli elementi della riga che precede quella nella quale il valore è stato trovato.
    
    
    %
    % Definizione di una matrice di esempio sulla quale lavorare
    %
    M=[
       2    25    23    11     3    29
       5    27    16     9    33    14
       8     1    21    24    17    13
       26   19    12    18    34     4
       6    30    36    15    32     7
       10   22    31    35    20    28
       ]
    %
    % Definizione valore da trovare
    %
    val=14;
    %
    % Ricerca del valore "val" nella matrice "M"
    %
    [r,c]=find(M == val)
    %
    % Verifica della presenza del valore "val" nella matrice "M"
    %
    if(isempty(r))
       disp(['Valore ' num2str(val) ' non trovato nella matrice '])
       M
    elseif(r == 1)
       disp(['Il valore cercato si trova nella prima colonna: impossibile calcolare la somma della riga precedente'])
    else
       s=sum(M(r-1,:));
    end
    
    
    Hope this helps.
Devi accedere o registrarti per scrivere nel forum
1 risposte