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

 Risposta accettata

x = wavenumber;
y = transpose(squeeze(ref_raw));
plot(x,y);

Più risposte (1)

hithere
hithere il 11 Ott 2014
Thanks alot!
But may I roughly know i would need to transpose. and whats the purpose of squeeze command?
thanks!

3 Commenti

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.
Thanks mate! Sorry for the trouble, im still learning.
Thanks alot!
No need to apologize. We are all still learning. When we stop learning, then it's time to throw in the towel!

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by