Problema con grafico Matlab

di il
1 risposte

Problema con grafico Matlab

Salve a tutti, ho un problema con un grafico.
mi spiego: ho tirato fuori un grafico e ora vorrei, su quel grafico, inserire una retta che mi funga da
"soglia" con i valori al di sopra ammissibili e quelli al di sotto no.
Consigli?

1 Risposte

  • Re: Problema con grafico Matlab

    Avendo in:

    [*] "x" i valori delle ascisse dei punti
    [*] "y" i valori della curva

    per aggiungere una retta che rappresenti una soglia è sufficiente:

    [*] definire la soglia (nell'esempio si è scelto il valore "0.3")
    [*] inserire l'istruzione "hold on" per poter rappresentare più di una curva nello stesso grafico
    [*] inserire l'istruzione per la rappresentazione della retta "soglia" (bastano due punti)
    
    %
    % Definizione soglia
    %
    soglia=0.3;
    %
    hold on
    %
    % plot della soglia
    %
    plot([x(1) x(end)],[soglia soglia],'r');
    
    
    Volendo ottenere un grafico più completo e "leggibile", si possono estrarre i soli valori maggiori o minori rispetto alla soglia e poi rappresentarli graficamente.
    Per identificare i punti della curva di interesse si può utilizzare la funzione "find".
    
    %
    % Generazione punti di esempio
    %
    x=0:0.01:2*pi;
    y=sin(2.*x);
    %
    % Inizializzazione variabili:
    %   y_ge_soglia: punti al di sopra o uguali alla soglia
    %   y_lt_soglia: punti al di sotto della soglia
    %
    %   i valori "NaN" vengono inseriti solo per facilitare la rappresentazione
    %   grafica; al termine dello script, i valori "NaN" vengolo eliminati e le
    %   due variabili conterranno solo i valori effettivi
    %
    y_ge_soglia=y*NaN;
    y_lt_soglia=y*NaN;
    %
    % Definizione soglia
    %
    soglia=0.3;
    %
    % Ricerca ascisse punti al di sopra & al di sotto della soglia
    %
    x_ge_soglia=find(y >= soglia);
    x_lt_soglia=find(y < soglia);
    %
    % Valori dei punti al di sopra & al di sotto della soglia
    %
    y_ge_soglia(x_ge_soglia)=y(x_ge_soglia);
    y_lt_soglia(x_lt_soglia)=y(x_lt_soglia);
    %
    % Grafici
    %
    figure
    %
    % Figura con quattro grafici:
    %    nel primo grafico vengono rappresentati:
    %       - tutti i punti della curva
    %       - la retta che definisce la soglia
    %    nel secondo grafico vengono rappresentati:
    %       - la curva con i punti maggiori o uguali alla soglia in rosso
    %       - la curva con i punti minori della soglia in verde
    %       - la retta che definisce la soglia
    %    nel terzo grafico vengono rappresentati:
    %       - solo i punti maggiori o uguali alla soglia
    %       - la retta che definisce la soglia
    %    nel quarto grafico vengono rappresentati:
    %       - solo i punti minori della soglia
    %       - la retta che definisce la soglia
    %
    % Primo grafico:
    %
    subplot(2,2,1)
    %
    % plot della curva
    %
    plot(x,y);
    grid on
    hold on
    %
    % plot della soglia
    %
    plot([x(1) x(end)],[soglia soglia],'r');
    %
    % Secondo grafico:
    %
    subplot(2,2,2)
    %
    % plot della curva con in soli valori superiori o uguali alla soglia
    %
    plot(x, y_ge_soglia,'r')
    hold on
    %
    % plot della curva con in soli valori inferiori alla soglia
    %
    plot(x, y_lt_soglia,'g')
    %
    % plot della soglia
    %
    plot([x(1) x(end)],[soglia soglia],'r');
    grid on
    %
    % Terzo grafico
    %
    subplot(2,2,3)
    %
    % plot della curva con in soli valori superiori o uguali alla soglia
    %
    plot(x, y_ge_soglia)
    %
    % plot della soglia
    %
    hold on
    plot([x(1) x(end)],[soglia soglia],'r');
    grid on
    %
    % Quarto grafico
    %
    subplot(2,2,4)
    %
    % plot della curva con in soli valori inferiori alla soglia
    %
    plot(x, y_lt_soglia)
    %
    % plot della soglia
    %
    hold on
    plot([x(1) x(end)],[soglia soglia],'r');
    grid on
    %
    % Eliminazione dei valori "NaN"
    %
    y_ge_soglia(x_lt_soglia)=[];
    y_lt_soglia(x_ge_soglia)=[];
    
    
    Hope this helps
Devi accedere o registrarti per scrivere nel forum
1 risposte