# Creating a multi-dimensional array out of many lower-dimensional arrays

2 views (last 30 days)

Show older comments

Hello!

I currently have a hundred or so large datasets that are MxN (thus 2-D), for the external program that I use to gather this information I must run it for each of the parameters that I'm changing, for example ... etc. Therefore I now have hundreds of MxN datasets that need to be combined into a multi-dimensional array. To give an example:

What I currently have:

data(alpha,mach) = 15; % element of the data at specified alpha and mach, for delta1 = 0; delta2 = 0; delta3 = 0; delta4 = 0;...

data(alpha,mach) = 10; % element of the data at specified alpha and mach, for delta1 = 5; delta2 = 0; delta3 = 0; delta4 = 0;...

Now I would like to have

data(alpha,mach,0,0,0,0,...) = 15;

data(alpha,mach,5,0,0,0,...) = 10;

I've looked into the "cat" command, but I'm not 100% on how it works, and how to check that the data that I've combined retains the same information.

Any help would be greatly appreciated!

##### 9 Comments

Taiwo Bamigboye
on 4 Apr 2020

### Accepted Answer

Matt J
on 4 Apr 2020

Edited: Matt J
on 4 Apr 2020

If your "datasets" really are in the form of the Matlab dataset type described here, then I think you could probably just do something like the following:

C=dataset2cell(data); %convert the datasets to cell array

[m,n,p,q,r,s,t]=deal(10,12,5,5,5,5,5); %The data dimensions

dataArray = reshape( cat(3,C{:}) , [m,n,p,q,r,s,t]);

gridVectors ={alphaList,machList,delta1List,....}; %List of sample grid values for each of the variables

lookupFunction=griddedInterpolant(gridVectors,dataArray);

##### 7 Comments

### More Answers (0)

### See Also

### Community Treasure Hunt

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

Start Hunting!