MATLAB Answers

Conversion to double from cell is not possible.

18 views (last 30 days)
Fabian Moreno
Fabian Moreno on 8 Jul 2020
Commented: Adam Danz on 10 Jul 2020
Hi there, I am new in MATLAB and I have this problem "Conversion to double from cell is not possible", I uploaded a matrix with readtable and I delimited with (;). Then It made a matrix of 10200x3, in the third column I have values with "comma" decimal (25,7). I used str2double to change from cell array to double array, but the new value is (257). I would like to get the same value (25,7). Somebody could help me please.
  2 Comments
Fabian Moreno
Fabian Moreno on 8 Jul 2020
Hello Madhan, I don't mind here I attach the file and the screenshot. Thanks

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 8 Jul 2020
Edited: Adam Danz on 8 Jul 2020
There might be an option in readtable() or within the opts input that can specify what decimal character to use when reading in the data. I looked briefly but couldn't find what I'm imagining but I do recall that such an option exists. That would be the best solution, if possible.
To fix the data described in your question, first replace the commas in column 3 with periods.
% "C" is your cell array
C(:,3) = strrep(C(:,3),',','.');
then proceed with str2double.
d = str2double(C(:,3));
For tables
T.Var3 = strrep(T.Var3,',','.');
T.Var3 = str2double(T.Var3);
  3 Comments
Adam Danz
Adam Danz on 8 Jul 2020
That's because your data is not a cell array. It's a table.
I've updated my answer.

Sign in to comment.

More Answers (1)

Fabian Moreno
Fabian Moreno on 8 Jul 2020
I have one more question, when I Convert strings to double precision values, the result is a number like this (23.700). I'm trying to take out the extra zeros with (round). But the zeros continue there. Any suggestion to eliminate the zeros?.
  6 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!