data upload and interpolation

1 回表示 (過去 30 日間)
AMAN GUPTA
AMAN GUPTA 2022 年 4 月 13 日
回答済み: Vatsal 2023 年 10 月 5 日
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

回答 (1 件)

Vatsal
Vatsal 2023 年 10 月 5 日
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!

カテゴリ

Help Center および File ExchangeGet Started with MATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by