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!