Extract a range of frequencies and power from X-Y vector/array
2 views (last 30 days)
Show older comments
Hello,
I hope you are in good health.
I am trying to select a range of frequencies and their corresponding power from the given data set.
load phaseNoise.mat
plot(fnew,pnew)
xRange_new = fnew(fnew == 10e+009 | fnew <= 30e+009);
x_index = find (fnew == xRange_new);
yRange_new = pnew(x_index);
plot(xRange_new, yRange_new)
However, I get an error when I try to find the indexes of the specific frequencies saying that 'Arrays have incompatibel sizes for this operation.'. I know that the array sizes are different but I want to know how can I extract the x and y values simultaneously. I can use the zoom feature to only display the part I want but that's not what I want.
(If finding the indexes of the x values are not necessary then guide me on achieving the desired results so...)
Basically, I want to only select the frequencies from 10GHz to 30GHz and their corresponding Y-values and discard the rest of the values so I can display the graph from 10GHz to 30GHz and perform further analysis on the given range only.
Any help will be appreciated.
BR.
0 Comments
Accepted Answer
Mathieu NOE
on 27 Sep 2022
hello
some minor bugs , see comments
this is what you wanted :
load phaseNoise.mat
plot(fnew,pnew)
x_index = (fnew >= 10e+009 & fnew <= 30e+009); % & , not | !!; also, logical indexing suffices , no need to use "find"
xRange_new = fnew(x_index);
yRange_new = pnew(x_index);
plot(xRange_new, yRange_new)
4 Comments
More Answers (0)
See Also
Categories
Find more on Annotations 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!