Interactive introduction to multi-way analysis in MATLAB
Next Chapter: Basic PARAFAC modeling Previous Chapter: Contents 



 

CHAPTER 1

HANDLING MULTI-WAY ARRAYS IN MATLAB



 
 

Contents

  1. Load data

  2. Plot data

  3. Manage data

  4. Summary

  5. Comments

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. 

 

1. Load data

Use load claus and find out what the file contains (use whos).

 

2. Plot data

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?
 

3. Manage data

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. 

 

4. Summary

In this chapter it has been shown how to manipulate and plot the data. 

 

5. Comments please

Please comment here to give suggestions for improvements


Next Chapter: Basic PARAFAC modeling Previous Chapter: Contents

The N-way tutorial
Copyright © 1998
R. Bro