How to Convert a column with Char in Cell matrice to Number?
    조회 수: 7 (최근 30일)
  
       이전 댓글 표시
    
- I have a cell array:
 
A =
'Time'    'Name'    'Location'    'Duration'    'Remarks'
'100'    'John'        'Abc'        '1000'      'Nill'
'101'    'Tim'         'Def'        '1000'      'Nill'
'102'    'Tom'         'Ghi'        '2000'      'Nill'
'103'    'Jim'         'Jkl'        '4500'      'Nill'
Here I want to convert  A(2:4,  1),  and  A(2:4,  4) to numbers and save to same matrice A. 
I can do this using a LOOP and STR2DOUBLE(), but it is very time consuming when the matrice is very large.
Is there any method to convert a range of char-values in a cell matrice to to numbers?
I am looking for someting like:
A(2:4,  1) = str2double( A(2:4,  1) )      %This command is not working
A(2:4,  4) = str2double( A(2:4,  4) )      %This command is not working
- Output should look like:
 
A =
'Time'    'Name'    'Location'    'Duration'    'Remarks'
100      'John'        'Abc'        1000          'Nill'
101      'Tim'         'Def'        1000          'Nill'
102      'Tom'         'Ghi'        2000          'Nill'
103      'Jim'         'Jkl'        4500          'Nill'
댓글 수: 0
채택된 답변
  Stephen23
      
      
 2019년 4월 16일
        
      편집: Stephen23
      
      
 2019년 4월 16일
  
      You almost got it right, you just need to split the numeric array into a cell array so that it can be allocated back to the cell array A:
A(2:4,1) = num2cell(str2double(A(2:4,1))) 
A(2:4,4) = num2cell(str2double(A(2:4,4)))
Or simply on one line:
A(2:4,[1,4]) = num2cell(str2double(A(2:4,[1,4])))
추가 답변 (1개)
  KSSV
      
      
 2019년 4월 16일
        
      편집: KSSV
      
      
 2019년 4월 16일
  
      A = {'Time'    'Name'    'Location'    'Duration'    'Remarks'
'100'    'John'        'Abc'        '1000'      'Nill'
'101'    'Tim'         'Def'        '1000'      'Nill'
'102'    'Tom'         'Ghi'        '2000'      'Nill'
'103'    'Jim'         'Jkl'        '4500'      'Nill'}  ;
T = cell2table(A(2:end,:),'VariableNames',A(1,:)) ; 
T.(1) = cell2mat(T.(1)) ; 
T.(4) = cell2mat(T.(4)) ;
T
댓글 수: 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!