Comparing data with numbers and text
    5 次查看(过去 30 天)
  
       显示 更早的评论
    
Hello everyone,
I have files that have both text and numbers. See below. I am trying to determine which rows match for columns 2 and 3. For instance, FILE1 (1 5012 X) would match FILE2 (7 5012 X). The corresponding indices would be i_FILE1 = 1 and i_FILE2 = 7. I tried using the function intersect, but it doesn't seem to work. Is there any way to do this? Note that I load in the data as cell arrays. If there is a better way, then let me know. Thanks.
FILE1
    1    5012   X 
    2    5012   Y 
    3    5012   Z 
    4    5012  RX 
    5    5012  RY 
    6    5012  RZ 
    7    5013   X 
    8    5013   Y 
    9    5013   Z 
   10    5013  RX 
   11    5013  RY 
   12    5013  RZ 
   13    5021   X 
   14    5021   Y 
   15    5021   Z 
   16    5021  RX 
   17    5021  RY 
   18    5021  RZ
FILE2
    1    9800   X 
    2    9800   Y 
    3    9800   Z 
    4    9800  RX 
    5    9800  RY 
    6    9800  RZ 
    7    5012   X 
    8    5012   Y 
    9    5012   Z 
   10    5012  RX 
   11    5012  RY 
   12    5012  RZ 
   13    5013   X 
   14    5013   Y 
   15    5013   Z 
   16    5013  RX 
   17    5013  RY 
   18    5013  RZ 
   19    5021   X 
   20    5021   Y 
   21    5021   Z 
   22    5021  RX 
   23    5021  RY 
   24    5021  RZ
Best regards,
Bill Rooker
3 个评论
回答(1 个)
  per isakson
      
      
 2012-10-11
        
      编辑:per isakson
      
      
 2012-10-11
  
      One possibility:
    F1 = {
    '5012_X'
    '5012_Y'
    '5012_Z'
    '5012_RX'
    '5012_RY'
    '5012_RZ'
    '5013_X'
    '5013_Y'
    '5013_Z'
    '5013_RX'
    '5013_RY'
    '5013_RZ'
    '5021_X'
    '5021_Y'
    '5021_Z'
    '5021_RX'
    '5021_RY'
    '5021_RZ'};
    F2 = {
    '9800_X'
    '9800_Y'
    '9800_Z'
    '9800_RX'
    '9800_RY'
    '9800_RZ'
    '5012_X'
    '5012_Y'
    '5012_Z'
    '5012_RX'
    '5012_RY'
    '5012_RZ'
    '5013_X'
    '5013_Y'
    '5013_Z'
    '5013_RX'
    '5013_RY'
    '5013_RZ'
    '5021_X'
    '5021_Y'
    '5021_Z'
    '5021_RX'
    '5021_RY'
    '5021_RZ' };
    [C,ia,ib] = intersect( F1, F2 );
2 个评论
  per isakson
      
      
 2012-10-11
				I prefer to use sprintf:
    F1 = cell( N, 1 ); 
    for ii = 1 : N
        F1{ii} = sprintf( '%u_%s', FILE1{ii,2}, FILE1{ii,3} );
    end
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


