index error for find function
4 views (last 30 days)
Show older comments
I am trying to find the value of Signal_fft_hilbert at the values of newf. But i get the error:
??? Attempted to access Signal_fft_hilbert(14.6484); index must be a positive integer or logical.
I want to find the value at exactly 14.6484. How can I find the value?
newf=aa1(:)'
for s=1:length(newf)
ppks=find(Signal_fft_hilbert(newf(s)))
end
1 Comment
Dishant Arora
on 6 Mar 2014
You might have to go for interpolation to get the value at non- integral coordinates.
Accepted Answer
Iain
on 6 Mar 2014
Ok, it looks like you've got a vector "Signal_fft_hilbert", which I'm going to call "v".
If want v(14.6484). The only way you can get v(14. ... ) is if you interpolate.
doc interp1 % will tell you all about one function for interpolation.
Alternatively, if you want the v that corresponds to something having a value you could do something like:
v( time == 14.684324)
or
v(find(time > 14.00))
4 Comments
Chandrasekhar
on 7 Mar 2014
Edited: Chandrasekhar
on 7 Mar 2014
hope this works replace
top1{k}=freq_s(locs(k)) with
evalin('base',['top1' num2str(k) '=freq_s(locs(k))';])
this will append the 'k' value to top1 every time and creates a new variable top1k in the workspace.
More Answers (2)
Niklas Nylén
on 6 Mar 2014
Edited: Niklas Nylén
on 6 Mar 2014
I misunderstood the question, removed my response but kept the answer to not lose the comments below.
3 Comments
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!