Get value from table/matrix based on common attribute
    조회 수: 4 (최근 30일)
  
       이전 댓글 표시
    
I have two tables, A with informtions about people and where they live, B informations about cities. Several people can live in the same city. How can I add columns in A with the informations in B (city name, country) based on the Citycode without a loop?
A = table('Name','First','Citycode')
B = table('Citycode','CityName','Country')
A = ['Smith' 'John' '1001';
    'Taylor' 'James' '1004';
    'Thatcher' 'Mary' '1001']
B = ['1001' 'New York' 'USA';
    '1002' 'London' 'UK';
    '1004' 'Madrid' 'Spain']
댓글 수: 1
  Rik
      
      
 2021년 2월 26일
				Your syntax will not result in two tables. Please modify your code to reflect the actual data type of your variables.
I expect ismember will be helpful, but without your actual input data, I can't write the code for you.
채택된 답변
  Hernia Baby
      
 2021년 2월 26일
        % input data
A = {'Smith' 'John' '1001';
    'Taylor' 'James' '1004';
    'Thatcher' 'Mary' '1001'};
B = {'1001' 'New York' 'USA';
    '1002' 'London' 'UK';
    '1004' 'Madrid' 'Spain'};
A_t = cell2table(A,'VariableNames',{'Name','First','Citycode'});
B_t = cell2table(B,'VariableNames',{'Citycode','CityName','Country'});
% join
T = innerjoin(A_t,B_t)
T =
  3×5 table
        Name          First      Citycode      CityName       Country 
    ____________    _________    ________    ____________    _________
    {'Smith'   }    {'John' }    {'1001'}    {'New York'}    {'USA'  }
    {'Thatcher'}    {'Mary' }    {'1001'}    {'New York'}    {'USA'  }
    {'Taylor'  }    {'James'}    {'1004'}    {'Madrid'  }    {'Spain'}
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


