Converting Table into a Gridded Array for Use with 'griddedInterpolant'
5 views (last 30 days)
I am needing some help coming up with a solution to a problem. I have a large dataset that is being read into Matlab using 'readtable' and stored as variable 'C'. The dataset is generated externally and has the following format:
where C is a function of the other variables ( C = f(a1, a2, a3, ..., an) ). All of the 'a' variables are doubles. The number of 'a' variables, n, however is dependent upon the dataset being processed but will always be greater than or equal to 2 (n >= 2).
How would I go about converting this table into an array that works with 'griddedInterpolant'? The complete dataset provides all of the information needed to create a gridded data set. The downstream process currently relies on 'griddedInterpolant', however changes could be made if it would improve the overall performance. For reference, the downstream process takes the dataset, refines it, and then uses that refined data to generate the final results.
I have tried using 'unique' on each of the 'a' variables to obtain the inputs required for 'ndgrid', however when I attempt to 'reshape' the 'C' array I end up corrupting the data.
Thanks for any help that you can provide.
Aghamarsh Varanasi on 25 May 2021
You can access the data in a table in the form of a matrix using the syntax, T.Variables. For example,
ctable = readtable(); % let ctable be the variable in which the table is stored
ctableMatrix = ctable.Variables; % gives the table data as a matrix
For more information please refer to this documentation page.
Hope this helps