How do I plot this to display a spectrum?
显示 更早的评论
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
采纳的回答
更多回答(1 个)
hithere
2014-10-11
0 个投票
3 个评论
Rick Rosson
2014-10-11
编辑:Rick Rosson
2014-10-11
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
2014-10-11
Rick Rosson
2014-10-11
No need to apologize. We are all still learning. When we stop learning, then it's time to throw in the towel!
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!