How to convert a char array into a double array?
조회 수: 63 (최근 30일)
이전 댓글 표시
I have a character array (68*1 int8)
Y = Columns 1 through 9
49 52 55 52 51 52 46 55 50
Columns 10 through 18
54 56 54 44 32 51 44 32 32
Columns 19 through 27
32 48 46 48 48 48 44 32 32
Columns 28 through 36
48 46 48 55 56 44 32 49 48
Columns 37 through 45
46 52 51 52 44 32 53 44 32
Columns 46 through 54
32 55 51 46 57 51 56 44 32
Columns 55 through 63
54 55 46 53 54 50 44 45 56
Columns 64 through 68
52 46 56 49 50
The real data looks like this
X = 147434.72686, 3, 0.000, 0.078, 10.434, 5, 73.938, 67.562,-84.812
It is a CSV array. I want to convert this into a double array, So that I can access each of the values in X as a decimal number.
edit: I'm sorry if the question wasn't clear. I'm getting IMU data from my phone on to matlab, the UDP packets which are actually like X is sent as Y. So inorder to do my computation I need to convert this back to floating point values.(ie change Y to X)
댓글 수: 5
Image Analyst
2014년 8월 3일
Oh, I see now. You're getting x as an ascii string. So the values of Y are the ASCII values of each character of the X.
채택된 답변
Image Analyst
2014년 8월 3일
편집: Image Analyst
2014년 8월 3일
Y =[49 52 55 52 51 52 46 55 50,...
54 56 54 44 32 51 44 32 32,...
32 48 46 48 48 48 44 32 32,...
48 46 48 55 56 44 32 49 48,...
46 52 51 52 44 32 53 44 32,...
32 55 51 46 57 51 56 44 32,...
54 55 46 53 54 50 44 45 56,...
52 46 56 49 50];
Y(Y==44) = ' ' % Make separator be a space.
x = cell2mat(textscan(char(Y),'%f'))
추가 답변 (1개)
dpb
2014년 8월 3일
>> v=str2num(char(cell2mat(Y)))
v =
1.0e+05 *
1.4743 0.0000 0
>> v(2)
ans =
3
>>
But, why don't you read the csv file as numeric to begin with????
참고 항목
카테고리
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!