How can I split an array of float point numbers in two different arrays based on a dot (.) delimiter?
7 次查看(过去 30 天)
显示 更早的评论
Hi all,
I try to spilt an array of float point numbers in two different arrays based on a dot (.) delimiter but it does not work. I do the following steps:
1- Convert an array of float point numbers to be as a string.
2- spilt a string based on a dot (.) delimiter.
This is not work and shows the following error:
Error using strsplit (line 80) First input must be a string.
Error in decompose (line 8) C = strsplit(str,'.');
Sorry if there is any spelling errors. I am beginner in Matlab.
Thanks in advance!
0 个评论
采纳的回答
Walter Roberson
2014-4-15
编辑:Walter Roberson
2014-4-15
Aint = fix(A);
Adecimals = (abs(A) - abs(Aint)) * sign(A);
Or
T = rem(A, 1);
Adecimals = abs(T);
Aint = A - T;
If the numbers are certain to be non-negative then you can use
Aint = floor(A);
Adecimals = mod(A,1);
Note: if you are expecting that (for example) 3.14 would split into 3 and 14, then you have the problem that 3.14 is the same as 3.140 which would visually split into 3 and 140 instead. You would also have problems with the fact that 0.1 is not exactly representable in binary floating point, so 0.14 is actually represented internally as 0.14000000000000001332267629550187848508358001708984375
0 个评论
更多回答(1 个)
Chandrasekhar
2014-4-15
numbers can be converted into strings using 'num2str' command and they can be splitted using 'strtok' command
1 个评论
Walter Roberson
2014-4-15
num2str() uses a default format that might not be suitable -- though you can specify a format as the second parameter.
regexp() with the 'split' option can also be used to split strings.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!