representation of array

there is a vector T=[ 0 .00001 ............ .0001 ]
and the corresponding value at different times are represented by: Y=[ 1 2 ........... 3 ] now if i want to track the value of Y at time T=.00001; then how will i get that? actually in sim(0 command the values are being produced for different times. how to pick up a perticular value at a perticular time?

2 Comments

Please provide a small set of sample data/operation/expected results.
there is a model of pid controller.
now im simulating it through sim() command from m-file.
[X T Y]=sim('modelname','timespan');
im using 'timespan' as [0 .01 .1] as like-(Tstart T(outputtime) Tfinal] format.
now the output of the pid controller is being tabulated in matlab base window as
>>T=[ 0
.01
.1]
Y=[ 2.35
3.01
3.11 ]
X=[.767 .767 .8765 ................]
now, thing is that i have to return the value of the output(Y) for the time T(outputtime).how will i get that?

Sign in to comment.

 Accepted Answer

Dr. Seis
Dr. Seis on 26 Jan 2012
Like this example?
>> T = 0 : 0.01 : 0.05
T =
0 0.0100 0.0200 0.0300 0.0400 0.0500
>> Y = rand(size(T))
Y =
0.9493 0.3479 0.4887 0.3533 0.7126 0.2021
>> Y_track = Y(T == 0.02)
Y_track =
0.4887
I think there is a better way to do this... since equalities for floating point numbers are generally not good programming practice due to precision issues.

3 Comments

Perhaps something like...
Y_track = Y(int32(T*100) == int32(0.02*100))
there is a model of pid controller.
now im simulating it through sim() command from m-file.
[X T Y]=sim('modelname','timespan');
im using 'timespan' as [0 .01 .1] as like-(Tstart T(outputtime) Tfinal] format.
now the output of the pid controller is being tabulated in matlab base window as
>>T=[ 0
.01
.1]
Y=[ 2.35
3.01
3.11 ]
X=[.767 .767 .8765 ................]
now, thing is that i have to return the value of the output(Y) for the time T(outputtime).how will i get that?
I haven't worked with "sim"... if "outputtime" is simply an index of time "T" and the time elements in "T" correspond to amplitude elements in "Y", then Y(outputtime) should correspond to T(outputtime). If "outputtime" is a floating point number, then try:
Y_output = Y(int32(T*1e6) == int32(outputtime*1e6))

Sign in to comment.

More Answers (0)

Categories

Find more on Simulink in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!