/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
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



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste