필터 지우기
필터 지우기

How to output a value of an array for a specific value of time?

조회 수: 2 (최근 30일)
Abhinav Prashant Mohanakrishnan
Abhinav Prashant Mohanakrishnan 2014년 9월 18일
댓글: David Sanchez 2014년 9월 18일
I have the following section of code. I am generating arrays of t and v to create a plot.
wn and theta are given.
n=3; N=500; t=linspace(0,n*Tn,N); v=rho*cos(wn*t+theta);
Now how do I print the value of v for t=1?

답변 (1개)

David Sanchez
David Sanchez 2014년 9월 18일
idx = find(t==1);
v(idx)
or in a single line:
v( find(t==1) )
  댓글 수: 5
Abhinav Prashant Mohanakrishnan
Abhinav Prashant Mohanakrishnan 2014년 9월 18일
편집: Abhinav Prashant Mohanakrishnan 2014년 9월 18일
That's exactly my problem. I generated 't' to plot a displacement vs time graph but I also need the displacement value at time t. So now that 't' is an empty vector, I am not able to print anything. Is there a way to goal seek using linspace? Somehow include 1 in the series?
David Sanchez
David Sanchez 2014년 9월 18일
Absolutely, as explained by Daniel in http://www.mathworks.com/matlabcentral/answers/48942-insert-element-in-vector you can do this:
t=linspace(0,n*Tn,N);
idx = find(t<1,1);
insert = @(a, x, n)cat(2, x(1:n), a, x(n+1:end)); % function to insert the value "a" in array "x" in position "n"
t = insert(1, t, idx); % now t contains the value "1"
v=rho*cos(wn*t+theta);

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Calendar에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by