Estrarre valori da matrice

di il
1 risposte

Estrarre valori da matrice

Ho un vettore 20x1
FlowMeasurements = 
-0,200000000000000
-0,193180651701361
-0,172908620850317
-0,139736875603245
-0,0945702546981968
-0,0386407858128705
0,0265259209387866
0,0991522876735153
0,177257256429600
0,258710327263834
0,341289672736166
0,422742743570400
0,500847712326485
0,573474079061213
0,638640785812871
0,694570254698197
0,739736875603245
0,772908620850317
0,793180651701361
0,800000000000000


e due matrici 5x20
psic_neg_cheb
e
psic_pos_cheb
.

Vorrei ricavare una quarta matrice
Approx
5x20 così fatta:
- le prime 6 colonne devono essere quelle di
psic_neg_cheb
, dove quindi
FlowMeasurements
è negativa, e le restanti 14 colonne di
psic_pos_cheb
dove
FlowMeasurements
è positiva.

1 Risposte

  • Re: Estrarre valori da matrice

    La domanda non chiara.

    E' improbabile che tu abbia effettivamente il vettore "FlowMeasurements " come lo hai riportato, visto che contiene la "virgola" invece del "punto" come separatore (a meno che, ad esempio, non sia una matrice di caratteri).

    A cosa serve i vettore "FlowMeasurements" nella costruzione della matrice di output? E' rilevante solo il "segno" dei suoi valori?

    Vuoi individuare i valori negativi del vettore "FlowMeasurements" (a prescindere dal fatto che nell'esempio siano consecutivi) e scegliere le colonne delle altre due matrici in corrispondenza?

    Per individuare i valori negativi puoi semplicemente valutare la condizione:
    
    idx=(FlowMeasurements < 0)'
    
    A questo punto puoi:
    [*] inizializzare la matrice di output (ad esempio con valori "NaN")
    [*] utilizzare gli indici posizione per identificare quali colonne delle due marici inserire nella matrice di output
    
    out_m=nan(5,20)
    
    out_m(:,idx)=psic_neg_cheb(:,idx)
    out_m(:,~idx)=psic_pos_cheb(:,~idx)
    
Devi accedere o registrarti per scrivere nel forum
1 risposte