Grafico funzioni matlab

di il
1 risposte

Grafico funzioni matlab

Buon pomeriggio a tutti, io ho un problema in matlab, ovvero: Ho creato uno script per analizzare delle prove di evoluzione di una particolare nave, ed ho preso in considerazione solo parte di questa prova in particolare una evoluzione completa a dritta e a sinistra della quale ho i grafici in due condizioni diverse:
-1°Caso:




-2°Caso:



Questi grafici li ho creati con plot ed ora mi servirebbe creare un unico grafico in cui, ad esempio, i grafici del caso 1 si sovrappongono e partano dallo stesso punto. Quindi in sintesi ho bisogno di un grafico in cui i grafici da me già creati del caso 1 si sovrappongano e partano dallo stesso punto ed un secondo grafico in cui i grafici da me creati nel caso due si sovrappongano e partano dallo stesso punto. Ho provato in svariati modi ma non riesco mai a farli partire dallo stesso punto , qualcuno può darmi una mano?

Grazie mille

1 Risposte

  • Re: Grafico funzioni matlab

    Se non ho capito male, si tratta semplicemente di traslare i valori di uno dei due grafici.
    Se è così, per traslare il secondo grafico affinchè il suo punto di inizio sia lo stesso di quello del primo grafico, è sufficiente calcolare la differenza tra i primi due punti delle ascisse e delle ordinate dei due set di dati e sottrarre questa ai valori del secondo grafico.

    Una possibile implementazione potrebbe essere:
    
    % Definizione dei punti del prio grafico 
    x1=1:360;
    y1=cosd(x1);
    
    % Definizione dei punti del prio grafico 
    x2=45:450;
    y2=-2*sind(x2);
    
    % Plot dei due grafici
    plot(x1,y1);
    hold on
    plot(x2,y2);
    
    % Calcolo della differenza delle X e Y del primo punto
    delta_x=x2(1)-x1(1)
    delta_y=y2(1)-y1(1)
    
    % TRaslazione del secondo grafico nel punto di inizio del primo grafico
    y22=y2-delta_y;
    x22=x2-delta_x;
    
    % Plot dei due grafici
    figure
    plot(x1,y1,x22,y22);
    
    % Stesso procedimento, ma "animato"
    figure
    plot(x1,y1);
    min_x=min([x1,x2])
    max_x=max([x1,x2])
    
    min_y=min([y1,y2-delta_y])
    max_y=max([y1,y2-delta_y])
    set(gca,'xlim',[min_x max_x],'ylim',[min_y max_y])
    hold on
    step_x=delta_x/10;
    step_y=delta_y/10;
    
    for i=1:10
       hp=plot(x2-step_x*i,y2-step_y*i,'r');
       set(gca,'xlim',[min_x max_x],'ylim',[min_y max_y])
       pause(.3)
       delete(hp)
    end
    
Devi accedere o registrarti per scrivere nel forum
1 risposte