How do I plot this to display a spectrum?
Show older comments
I want to plot the intensity against wavenumber.
This is the intensity i believe:

But i dont understand what's val(:,:,1) this runs till val(:,:,729)
and this is the wavenumber:

and it runs from 1 to 729
i tried to plot x = wavenumber and y = ref_Raw and plot (x,y)
however it was reflected
??? Error using ==> plot Data may not have more than 2 dimensions
do need help with this!
thanks
Accepted Answer
More Answers (1)
hithere
on 11 Oct 2014
0 votes
3 Comments
Rick Rosson
on 11 Oct 2014
Edited: Rick Rosson
on 11 Oct 2014
The variable ref_raw is a 25 x 1 x 729 array. To verify, please type
size(ref_raw)
at the command prompt. In MATLAB, this array has 3 dimensions:
ndims(ref_raw)
The plot function does not allow arguments that have more than 2 dimensions. But notice that the size of the middle dimension is exactly 1. As a result, it is unnecessary. In MATLAB, this dimension is called a singleton dimension. The squeeze function eliminates singleton dimensions.
In this case, the result of calling squeeze is to convert raw_ref to a 25 x 729 array, which is 2D and contains all of the same numeric values.
Finally, the transpose simply converts the array to 729 x 25. The reason the transpose is necessary is because the plot function treats each column as an independent data series. Because the wavenumber variable contains 729 values, I inferred that you wanted to plot 25 different spectra, each consisting of 729 values.
hithere
on 11 Oct 2014
Rick Rosson
on 11 Oct 2014
No need to apologize. We are all still learning. When we stop learning, then it's time to throw in the towel!
Categories
Find more on Logical 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!