data upload and interpolation

5 visualizzazioni (ultimi 30 giorni)
AMAN GUPTA il 13 Apr 2022
Risposto: Vatsal il 5 Ott 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);
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

Risposte (1)

Vatsal il 5 Ott 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);
I hope this helps!


Scopri di più su Tables in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by