Transformation form char to double
조회 수: 127 (최근 30일)
이전 댓글 표시
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
채택된 답변
Stephen23
2018년 8월 9일
편집: Stephen23
2018년 8월 9일
>> 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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!