How can i find specific data from a large no. of csv file?

i have 1080 csv file named 1_1,1_2,...1_36, 2_1, 2_2,...2_36........30_1, 30_2,30_36, each file have different no. of rows with same no. of column,these files have x, y ,z and temperature values. I have one csv file named Data.csv having 68 combination of x ,y and z values , now i want to extract all 68 temperature values for each x , y and z points of Data.csv for each file into a single matrix of [68*1080]. How can i do this ,please help me with matlab code.
i am attaching Data.scv and one 1_1.csv for reference.

Answers (1)

T = readtable('Data.csv') ;
csvFiles = dir('*.csv') ; % otherfiles in a folder. Keep Data.csv seperatly
N = length(csvFiles) ;
M = size(T,1) ;
iwant = zeros(M,N) ;
for i = 1:N
Ti = readtable(csvFiles(i).name) ;
idx = knnsearch([Ti.(1) Ti.(2)],[T.(1) T.(2)]) ;
iwant(:,i) = Ti.(3)(idx) ;
end

4 Comments

@KSSV i'm getting error like this
'knnsearch' requires one of the following:
Statistics and Machine Learning Toolbox
Text Analytics Toolbox
Error in theta_ecc (line 8)
idx = knnsearch([Ti.(1) Ti.(2)],[T.(1) T.(2)]) ;
can u help me in that?
knnsearch needs statitics toolbox. If you are okay with interpolating the data.
T = readtable('Data.csv') ;
csvFiles = dir('*.csv') ; % otherfiles in a folder. Keep Data.csv seperatly
N = length(csvFiles) ;
M = size(T,1) ;
iwant = zeros(M,N) ;
for i = 1:N
Ti = readtable(csvFiles(i).name) ;
F = scatteredInterpolant(Ti.(1),Ti.(2),Ti.(3)) ;
iwant(:,i) = F(T.(1),T.(2)) ;
end
@KSSV thanks for your answer , but i am not getting the temperature values for each set of x,y and z points of Data.csv.
i am attaching the matrix ,that i have obtained from the above code.
I am getting the values from the csv files which you have uploaded.

Sign in to comment.

Categories

Find more on Mathematics in Help Center and File Exchange

Tags

Asked:

on 31 Mar 2022

Commented:

on 1 Apr 2022

Community Treasure Hunt

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

Start Hunting!