2D FFT using data from multiple CSV file

Hello,
I have data in 1008 csv files, each files has 3 column in it. I want to form a matrix using only the first column of each csv file as column vector of matrix, so that I have a matrix with 1008 columns and than do its 2D fft.
How can I form the matrix from csv files?

 Accepted Answer

Hi Manoj,
I understand that you have data in 1008 csv files and want to extract the first column of each csv file to a matrix.
You can use 'dir' function to read the name of all files with csv extensions and then iterate over the files using a 'for' loop.
To read data from csv files you can use 'readtable' function. To import specific column from the csv file, you can specify options and select the variable names using 'SelectedVariableNames'.
Refer the below link to know how to create import options object for a csv file.
After extracting data into a matrix, use the 'fft2' function to perform 2D FFT.
I hope this helps.

3 Comments

This is the code I am using it is giving an error.
I want to import only the variable "accel_x" from each file.
This is the error I am getting:
"Error using readtable
All parameters must have an associated value.
Error in Finalfilecsv (line 5)
data{i}=readtable(d(i).name,opts); "
d=dir('*.csv');
n=length(d);
for i=1:n
opts.SelectedVariableNames = {'accel_x'};
data{i}=readtable(d(i).name,opts);
end
Hi Manoj,
I understand that you want to import only the variable "accel_x" from each file.
The reason for the error might be because of different column name. You can run the below code and check if the SelectedVariableNames gives “accel_x” as one of the outputs in the cell array.
opts = detectImportOptions('filename')
opts.SelectedVariableNames
I hope it helps.
Thank you, it worked.

Sign in to comment.

More Answers (0)

Products

Release

R2022a

Community Treasure Hunt

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

Start Hunting!