Interactive introduction
to multi-way analysis in MATLAB
Next Chapter: Basic PARAFAC
modeling Previous Chapter: Contents
Contents |
Data used: claus.mat contains fluorescence excitation emission data from five samples containing tryptophan, phenylalanine, and tyrosine. Purpose: Learning about the Multi-way Toolbox for MATLAB and about how to view, arrange, and plot multi-way data in MATLAB. |
Use load claus and find out what the file contains (use whos).
Use the plot functions to view data and learn about the three-way structure of the data and how to access it in MATLAB. If you are low on (computer!) memory go to step three initially. Do the following plots and understand what is shown in the plots! Type help subplot to learn of the function subplot.
Plotting Emission spectra
subplot(2,1,1),plot(X(:,:,1)')
subplot(2,1,2),plot([X(:,:,1) X(:,:,2)]')
What's the difference between the two plots?
Plotting excitation spectra
Try to plot some excitation spectra as
plot(X(:,1,:)')
This does not work! The reason is that X(:,1,:) is not a matrix. Use the command size to figure out what X(:,1,:)is (tell me)? With the command plot, we can only plot matrices so we have modify things a bit
subplot(2,1,1),plot(squeeze(X(:,1,:))')
subplot(2,1,2),plot(squeeze(X(:,30,:))')
What's on the plots. What's the difference between the two plots?
If we want to be fancy we can add correct axes and titles to the plots. In the vector ExAx (type whos to see the data available), the actual 61 excitation wavelengths are given. We can add these to the plots by
subplot(2,1,1),plot(ExAx,squeeze(X(:,1,:))')
And we can add more by typing
xlabel('Wavelength/nm')
ylabel('Intensity')
title('Fluorescence excitation spectra','FontWeight','Bold','FontSize',14)
Plotting landscapes
All the following commands will plot all the data from sample number 2. Try to understand the differences in the plots. That is important when you want to visualize your own data. Use MATLAB help for functions you don't understand.
clf
subplot(3,2,1),plot(squeeze(X(2,:,:)))
subplot(3,2,2),plot(reshape(X(2,:),201,61))
subplot(3,2,3),plot(reshape(X(2,:),201,61)')
subplot(3,2,4),mesh(reshape(X(2,:),201,61))
subplot(3,2,5),mesh(reshape(X(2,:),201,61)')
subplot(3,2,6),mesh(EmAx,ExAx,reshape(X(2,:),201,61)')
axis tight
All plots show the same data. What's the difference?
As an example of managing the data, reduce the size of X for easier computations. Use only every third wavelength in the excitation mode (mode three) and every sixth wavelength in the emission mode (mode two). An easy way to do that is the following
Xnew = X(:,1:6:end,1:3:end);
If you have very little memory reduce the data even more. Remember to reduce EmAx and ExAx accordingly if you plan to use those for plotting.
In this chapter it has been shown how to manipulate and plot the data.
Please comment here to give suggestions for improvements
Next Chapter: Basic PARAFAC modeling Previous Chapter: Contents
The N-way tutorial
Copyright © 1998
R. Bro