Finding data on specific point from large set data

6 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.


Community Treasure Hunt

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

Start Hunting!