Creating a multi-dimensional array out of many lower-dimensional arrays
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ayden Clay
el 3 de Abr. de 2020
Editada: Ayden Clay
el 6 de Abr. de 2020
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/281653/image.png)
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 comentarios
Taiwo Bamigboye
el 4 de Abr. de 2020
Have tried so hard to learn MATLAB on my own but it seems not working for me. Please is there anyone that knows it very well and ready to teach me via zoom or team view, off course am ready to pay. All this online learning is not intuitive for me.
Respuesta aceptada
Matt J
el 4 de Abr. de 2020
Editada: Matt J
el 4 de Abr. de 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 comentarios
Matt J
el 6 de Abr. de 2020
I don't see anything in your code that relies on length(beta)==length(mach).
Más respuestas (0)
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!