Transformation form char to double
152 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
jrbbrt
el 9 de Ag. de 2018
Comentada: jrbbrt
el 9 de Ag. de 2018
Hi everyone .. I know this should be a simple one, but somehow I'm doing hard on this task ...
I got: A row of chars representing numbers, which for example look like this '1799', '1,867', '0,219', '-0,719502', etc. and are saved in cells (200x1 cell).
So what I want to do: is converting those chars into the equivalent numbers they're representing!
My idea:
- was - due them being in a cell - using cell2mat ... which isn't working because Matlab says "Dimensions of arrays being concatenated are not consistent.".
- So my next thought I had was simply using str2double ... here the problem is that all the commas are deleted and for example instead of '0,219' I end up with the number 219. Not what I need.
- Elsewise I had the idea of using strsplit after using char on my row. Unfortunately here Matlab says my "'STRING' input must be either a char row vector, a cell array of char row vectors, or a string array."
- So my latest approach is using:
str2double(char(myrow(:,1)'));
... which results in 'NaN' as my answer. What am I doing wrong?
I appreciate your thoughts! Best regards.
0 comentarios
Respuesta aceptada
Stephen23
el 9 de Ag. de 2018
Editada: Stephen23
el 9 de Ag. de 2018
>> C = {'1799', '1,867', '0,219', '-0,719502'};
>> str2double(strrep(C,',','.'))
ans =
1799.00000 1.86700 0.21900 -0.71950
Native MATLAB only uses decimal point as the decimal radix character, never a comma, so you will always have to convert this explicitly.
Más respuestas (0)
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!