index error for find function
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
Dishant Arora
2014-3-6
You might have to go for interpolation to get the value at non- integral coordinates.
采纳的回答
Iain
2014-3-6
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 个评论
Chandrasekhar
2014-3-7
编辑:Chandrasekhar
2014-3-7
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.
更多回答(2 个)
Niklas Nylén
2014-3-6
编辑:Niklas Nylén
2014-3-6
I misunderstood the question, removed my response but kept the answer to not lose the comments below.
3 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!