Reading and calculations with a csv file with a pair of numbers in each cell

3 views (last 30 days)
I was wondering if anyone could help me with the following problem :
I need to read data from a .csv file into MATLAB so that I can work with it and perform calculations . The numbers in each cell are in the following format : {0.003336 , 0.023000}. I'm working with 128 x 128 cells in a spreadsheet . Functions such as csvread aren't working for me possibly because there are curly brackets as well as numbers in each cell ?
Ideally I would like to store the first number of each pair as the (1,1) element of a 2x2 matrix M and the second number as the (2,2) element in M . But I need the data to be read first !
Any help and advice would be much appreciated !
Saba

Accepted Answer

Jan
Jan on 18 Feb 2016
Edited: Jan on 18 Feb 2016
Would this work:
fid = fopen(FileName, 'r');
if fid == -1, error('Cannot open file: %s', FileName); end
Data = fscanf(fid, '{%g, %g}', 128*128); % Edited: fid inserted
fclose(fid);
The wanted output format is not clear: What should the other 2 elements of M contain and how do you want to store the 128*128 M's?
If you append an example file or at least some lines of the file as text, testing a suggestion would be easier.
  3 Comments
Jan
Jan on 18 Feb 2016
Edited: Jan on 18 Feb 2016
I forgot the fid in the fscanf call. The code ist fixed. My question about the M-matrix: You get 128*128 M-matrices, when I understand it correctly. How do you want to store them? As a {128 x 128} cell matrix?
There is no attached csv file.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!