Hello,
You can use make_array to create data cubes. Here is a link to the documentation
http://www.exelisvis.com/...KE_ARRAY.html#NOZERO and here is an example of making a data cube:
temp = make_array(3,3,3,/float)
If your arrays are going to be very large, you may want to consider the /nozero keyword, which will not initialize the array with a value. This will speed up processing if you are going to change the values of the array right away. Here is an example:
temp = make_array(3,3,3,/float,/nozero)
For your second question, there is no built in function for IDL to read Matlab data files. However, with a general web search I did find the following forum post which provides a link to a third-party IDL program which may work for you. I should also note that we do not support third party IDL programs and if you have questions regarding the IDL-Matlab program you would need to contact the author. Apart from that, you may be able to get creative with saving files in ASCII or CSV format for saving your data in Matlab and reading them in with IDL.
http://www.exelisvis.com/...e/posts/Default.aspx
https://github.com/gordonfarquharson/idl-load-mat