data upload and interpolation

2 views (last 30 days)
AMAN GUPTA
AMAN GUPTA on 13 Apr 2022
Answered: Vatsal on 5 Oct 2023
I have csv file named as '1_1.csv', '1_2.csv', ...'1_41'.csv, '2_1.csv', '2_2.csv', ..'2_41.csv',............'71_1.csv', '71_2.csv',......'71_41.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 was using the code given below to get my temperature profile.
XYZq = csvread("DATA.csv");
num1s = 1:71;
num2s = 1:41;
T_interp = nan(size(XYZq,1),numel(num1s),numel(num2s)) % 3 dimensions
for num1 = num1s
for num2 = num2s
dataFilename = sprintf("%d_%d.csv",num1,num2)
data = csvread(dataFilename,9)
T_data = scatteredInterpolant(data(:,1:3),data(:,4));
T_interp(:,num1,num2) = T_data(XYZq);
end
end
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 upload my csv file and get my desire temperature data? Please help me

Answers (1)

Vatsal
Vatsal on 5 Oct 2023
Hi aman,
I understand that you have a set of CSV files named as 1_1.csv, 1_2.csv, and so on. Each CSV file contains temperature data for different locations. The task is to estimate the temperature at a specific point in each CSV file. It is also possible that the specific point may not be present in a CSV file, in that case interpolation will be used to measure the temperature.
Now, the CSV files have been renamed, and the new file names are in the form of 1_1_1.csv, 1_1_2.csv, and so on. Here is the modified code that will work with the updated file names:
XYZq = csvread("DATA.csv");
num1s = 1:21;
num2s = 1:9;
num3s = 1:11;
T_interp = nan(size(XYZq,1), numel(num1s), numel(num2s), numel(num3s)); % 4 dimensions
for num1 = num1s
for num2 = num2s
for num3 = num3s
dataFilename = sprintf("%d_%d_%d.csv", num1, num2, num3);
data = csvread(dataFilename, 9);
T_data = scatteredInterpolant(data(:,1:3), data(:,4));
T_interp(:, num1, num2, num3) = T_data(XYZq);
end
end
end
I hope this helps!

Categories

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!