|  | 		    
					
        
         
          
         
	
          | |  | Et matlab spørgsmål Fra : Lars
 | 
 Dato :  02-05-06 17:30
 | 
 |  | Håber det er ok i denne gruppe.
 
 Har en matlab simulink model der skal køres med variabel step size(skal være
 variabel pga. tid og præcision), og får generet en serier af data som skal
 plottes. Ændre lidt på modellen og kører den igen. Kan godt plotte de 2
 serier i samme plot, men når jeg bare ønsker at se differencen, opstår der
 et problem da tids akserne ikke er ens. Nogen der har en smart løsning, der
 helts ikke indeholder alt for mange if sætninger(Forholdsvis store data
 serie).
 
 \Lars
 
 
 
 
 |  |  | 
  SBJ (02-05-2006) 
 
	
          | |  | Kommentar Fra : SBJ
 | 
 Dato :  02-05-06 18:18
 | 
 |  | 
 
            On Tue, 2 May 2006 18:30:28 +0200, "Lars"
 <Ingenmailstak@trorduforstårhvorfor.dk> wrote:
 >Håber det er ok i denne gruppe.
 >
 >Har en matlab simulink model der skal køres med variabel step size(skal være 
 >variabel pga. tid og præcision), og får generet en serier af data som skal 
 >plottes. Ændre lidt på modellen og kører den igen. Kan godt plotte de 2 
 >serier i samme plot, men når jeg bare ønsker at se differencen, opstår der 
 >et problem da tids akserne ikke er ens. Nogen der har en smart løsning, der 
 >helts ikke indeholder alt for mange if sætninger(Forholdsvis store data 
 >serie).
 >
 >\Lars 
 >
 Hej Lars,
 Brug en length kommando til at finde den længste af de to arrays, og
 find forskellen i antal poster. Derefter lægger du et tilsvarende
 antal '0' værdier ind i den korteste af de to.
 Det kræver ikke en gang en if    mvh,
 Sune
            
             |  |  | 
  Kenneth Brun Nielsen (02-05-2006) 
 
	
          | |  | Kommentar Fra : Kenneth Brun Nielsen
 | 
 Dato :  02-05-06 21:51
 | 
 |  | 
 "SBJ" <sbjepsen@hotmail.com> skrev i en meddelelse 
 news:ds4f52pj89cmculpaqnmeokglkb1oim3qo@4ax.com...
 > On Tue, 2 May 2006 18:30:28 +0200, "Lars"
 > <Ingenmailstak@trorduforstårhvorfor.dk> wrote:
 >
 >>Håber det er ok i denne gruppe.
 >>
 >>Har en matlab simulink model der skal køres med variabel step size(skal 
 >>være
 >>variabel pga. tid og præcision), og får generet en serier af data som skal
 >>plottes. Ændre lidt på modellen og kører den igen. Kan godt plotte de 2
 >>serier i samme plot, men når jeg bare ønsker at se differencen, opstår der
 >>et problem da tids akserne ikke er ens. Nogen der har en smart løsning, 
 >>der
 >>helts ikke indeholder alt for mange if sætninger(Forholdsvis store data
 >>serie).
 > Brug en length kommando til at finde den længste af de to arrays, og
 > find forskellen i antal poster. Derefter lægger du et tilsvarende
 > antal '0' værdier ind i den korteste af de to.
 >
 > Det kræver ikke en gang en if    Men det løser heller ikke problemet. Jeg tror du har misforstået det. Det 
 bliver jo en noget utroværdig differens, hvis du bare indsætter nulværdier - 
 for bare at nævne en af manglerne..
 /Kenneth 
            
             |  |  | 
  Lars (02-05-2006) 
 
	
          | |  | Kommentar Fra : Lars
 | 
 Dato :  02-05-06 22:25
 | 
 |  | 
 "SBJ" <sbjepsen@hotmail.com> wrote in message 
 news:ds4f52pj89cmculpaqnmeokglkb1oim3qo@4ax.com...
 > On Tue, 2 May 2006 18:30:28 +0200, "Lars"
 > <Ingenmailstak@trorduforstårhvorfor.dk> wrote:
 >
 >>Håber det er ok i denne gruppe.
 >>
 >>Har en matlab simulink model der skal køres med variabel step size(skal 
 >>være
 >>variabel pga. tid og præcision), og får generet en serier af data som skal
 >>plottes. Ændre lidt på modellen og kører den igen. Kan godt plotte de 2
 >>serier i samme plot, men når jeg bare ønsker at se differencen, opstår der
 >>et problem da tids akserne ikke er ens. Nogen der har en smart løsning, 
 >>der
 >>helts ikke indeholder alt for mange if sætninger(Forholdsvis store data
 >>serie).
 >>
 >>\Lars
 >>
 >
 > Hej Lars,
 >
 > Brug en length kommando til at finde den længste af de to arrays, og
 > find forskellen i antal poster. Derefter lægger du et tilsvarende
 > antal '0' værdier ind i den korteste af de to.
 >
 > Det kræver ikke en gang en if    >
 > mvh,
 > Sune
 Den går desværre ikke, da der er meget stor forkel på længden af de 2 
 arrays, og dermed i tids arrayet:(
 \Lars 
            
             |  |  | 
  es335 (03-05-2006) 
 
	
          | |  | Kommentar Fra : es335
 | 
 Dato :  03-05-06 06:39
 | 
 |  | Det du skal gøre er at rekonstruere dine tidsserier. Du kan anvende en
 metode som kaldes "sample-and-hold" (søg litteratur for detailjer) som
 går ud på at beholde den seneste variabel 1 indtil en nærliggende
 variabel 2 er tilrådighed. Selvom dette er en nulte-ordens er den
 brugt.
 Bemærk at du herved også ændrer på din tidsopløsning idet du
 typisk vil få en sample frekvens der er lidt højere end den originale
 tidsserie.
 
 
 
 Lars skrev:
 
 > Håber det er ok i denne gruppe.
 >
 > Har en matlab simulink model der skal køres med variabel step size(skal være
 > variabel pga. tid og præcision), og får generet en serier af data som skal
 > plottes. Ændre lidt på modellen og kører den igen. Kan godt plotte de 2
 > serier i samme plot, men når jeg bare ønsker at se differencen, opstår der
 > et problem da tids akserne ikke er ens. Nogen der har en smart løsning, der
 > helts ikke indeholder alt for mange if sætninger(Forholdsvis store data
 > serie).
 >
 > \Lars
 
 
 
 |  |  | 
  sbjepsen@hotmail.com (03-05-2006) 
 
	
          | |  | Kommentar Fra : sbjepsen@hotmail.com
 | 
 Dato :  03-05-06 06:44
 | 
 |  | 
 
            Ah undskyld - det havde jo nok hjulpet hvis jeg havde læst *hele* dit
 indlæg    Jeg foreslår så du tager det array med den største afstand mellem
 tidsstep-værdierne, og bruger interpolationen yi =
 interp1(x,y,xi,method). Hvor x er tidsværdierne, y er din data og xi
 er et array med de tidsstep-værdier der skal interpoleres for, dvs x
 værdierne i dit data array med mindst afstand mellem tidsstep.
 Det burde så være muligt at lave en differens mellem samhørende
 tidsværdier, som så kan plottes
 De data der er interpoleret frem til er jo selvfølgelig 'fiktive', men
 metoden burde give en indikation på forholdet mellem de to modeller.
 mvh,
 Sune
            
             |  |  | 
  Lars (03-05-2006) 
 
	
          | |  | Kommentar Fra : Lars
 | 
 Dato :  03-05-06 12:31
 | 
 |  | 
 
            Tak! Det virker;)
 <sbjepsen@hotmail.com> wrote in message 
 news:1146635046.612439.33440@u72g2000cwu.googlegroups.com...
 Ah undskyld - det havde jo nok hjulpet hvis jeg havde læst *hele* dit
 indlæg    Jeg foreslår så du tager det array med den største afstand mellem
 tidsstep-værdierne, og bruger interpolationen yi =
 interp1(x,y,xi,method). Hvor x er tidsværdierne, y er din data og xi
 er et array med de tidsstep-værdier der skal interpoleres for, dvs x
 værdierne i dit data array med mindst afstand mellem tidsstep.
 Det burde så være muligt at lave en differens mellem samhørende
 tidsværdier, som så kan plottes
 De data der er interpoleret frem til er jo selvfølgelig 'fiktive', men
 metoden burde give en indikation på forholdet mellem de to modeller.
 mvh,
 Sune
            
             |  |  | 
 |  |