Finding data on specific point from large set data

3 views (last 30 days)
I have a folder named 'THETHA'. Inside folder I have 360 csv file named '1.csv', '2.csv',...'360.csv'. Each csv file has a data of temperature for different location (X ,Y, Z ,T). Each csv file has different number of rows because result is generated from comsol. I want to estimate temperature on specific point in each csv file. I have made another folder named "DATA" which contains my specific point(X, Y ,Z) in which i want to estimate temperature in each csv file. It is possible that our specific point may not be in csv file so i need to find temperature on that point with the help of interpolation. I am attaching my 'DATA' file and one csv file. Please help me.

Accepted Answer

AndresVar on 9 Mar 2022
Edited: AndresVar on 9 Mar 2022
  1. Import data (e.g. right click file -> Import data... -> generate code)
  2. Use scattered interpolant: Interpolating Scattered Data - MATLAB & Simulink (
%%% get XYZ locations to interpolate
opts = delimitedTextImportOptions("NumVariables", 3);
opts.DataLines = [1, Inf];
opts.Delimiter = ",";
opts.VariableNames = ["VarName1", "VarName2", "VarName3"];
opts.VariableTypes = ["double", "double", "double"];
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
data = readtable("DATA.csv", opts);
XYZq = table2array(data);
%%% import data from a Theta file
clearvars opts;
opts = delimitedTextImportOptions("NumVariables", 4);
opts.DataLines = [10, Inf];
opts.Delimiter = ",";
opts.VariableNames = ["X", "Y", "Z", "TKThetha1"];
opts.VariableTypes = ["double", "double", "double", "double"];
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
data = readtable("1.csv", opts);
data = table2array(data);
% create a scattered interpolant object
T_data = scatteredInterpolant(data(:,1:3),data(:,4));
% interpolate the values
T_interp = T_data(XYZq)
AMAN GUPTA on 30 Mar 2022
Thank you so much @AndresVar
Actually I have extracted these csv files from COMSOL Multiphysics. I have 2 variable parameter angle and radius. I have guess 41 value of angle and 71 value of radius so will get total 41*71=2911 combination. for each combination I have generated Temperature profile in COMSOL Multiphysics. so for each value of guess radius there will be 41 value of angle so I have given the name like this.
In this code I am facing one problem that my 41*71=2911 Temperature Profile is not in the form of Excel sheet. Can you please help me @AndresVar so that I can get my 2911 temperature profile in the form of excel data and i can use this data further in my calculation

Sign in to comment.

More Answers (1)

AMAN GUPTA on 10 Apr 2022
@AndresVar can you please help me for some modification?
now file name changes as '1_1_1.csv', '1_1_2.csv', ...'1_1_11'.csv, '1_2_1.csv', '1_2_2.csv', ..'1_2_11.csv',............'1_9_11.csv', '21_1_1.csv', '21_1_2.csv',.. '21_1_11.csv', '21_2_1.csv', '21_2_2.csv', '21_2_11.csv'.......'21_9_1.csv','21_9_2.csv', '21_9_11.csv'.
now how can i modify this code to get my desire data?.
Please help me.


Find more on Interpolation in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!

Translated by