MATLAB vector value location ID

  • Context: MATLAB 
  • Thread starter Thread starter DoubleHubble
  • Start date Start date
  • Tags Tags
    Matlab Value Vector
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
6 replies · 4K views
DoubleHubble
Messages
8
Reaction score
0
HELP! MATLAB vector value location ID?

In MATLAB, say I have two vectors of the same length -- because one is dependent on the other. In my case the independent vector is t, time, and the dependent is p, pressure.

t = 0:500 with an arbitrary time step (finer than 0.2 seconds).

I would like to know the easiest way to extract the value of p at t = 300.2. Any ideas?
 
Last edited:
Physics news on Phys.org


DoubleHubble said:
In MATLAB, say I have two vectors of the same length -- because one is dependent on the other. In my case the independent vector is t, time, and the dependent is p, pressure.

t = 0:500 with an arbitrary time step (finer than 0.2 seconds).

I would like to know the easiest way to extract the value of p at t = 300.2. Any ideas?

Well, the problem can be restated as follows: you know the value of p at 501 evenly spaced points in time and you want to use this to infer a value for p at some intermediate point. You solve problems like this using an interpolation of some type. Matlab has a range of commands with which you can generate interpolations; since your problem is one-dimensional you'll probably want to use the interp1 command. Type the following and see where Matlab leads you.

Code:
doc interp1
 
I understand your response, shoehorn, though it is not exactly what I am looking for. Basically I'm looking for the simplest way to arrive at the result of:

p = 1.1:0.1:10;
t = 16:1.5:150;

for i = 1:length(t)
if t(i) == 53.5
ival = i;
break
end
end

t(ival)
p(ival)
 
p = 1.1:0.1:10;
t = 16:1.5:150;
p(t==53.5)
 
AWESOME! Thanks.
 
What do you mean by corresponds to? Since 5 is the 5th element of t, putting p(t==5, 2) gives 9 since that is the 5th element of the 2nd column. What would you like the output to be?
 
Yea, I figured it out (which is why I removed my post). The example I had given above was different than what I was running on my machine. I discovered my "t" vector, for the simulation I was running on my computer, had machine epsilon in it. If I did p(t>5-eps & t<5+eps,2) it worked. Sorry for the confusion.