COMBINING MULTIPLE TABLES TOGETHER
조회 수: 18 (최근 30일)
이전 댓글 표시
I am working with a .mat file that has 100 tables (with different names) attached to it. I want to combine all those tables into a new single table without using individual names. Please help
댓글 수: 4
KSSV
2018년 10월 11일
I wont attach the .mat file why you don't attach a file, when you are asking a question in the forum?
답변 (2개)
KSSV
2018년 10월 11일
Type = {'Autostable' ; 'Auto' } ;
Status = { 'Success' ; 'Failure'} ;
Rank = [23 56 ]' ;
T1 = table(Type,Status,Rank) ;
Type = {'Manual' ; 'Manual' ; 'Manual' ; 'Reinitiate' } ;
Status = {'Failure' ; 'Disconnect' ;'Success' ; 'Success'} ;
Rank = [12 45 45 42]' ;
T2 = table(Type,Status,Rank) ;
T = [T1 ; T2]
% Use cat
T = cat(1,T1,T2)
댓글 수: 0
Stephen23
2018년 10월 11일
편집: Stephen23
2018년 10월 11일
"I have used the eval function to do the job but I want to do it without eval function??"
That is a good idea, because eval makes code slow, complex, and buggy. Read this to know why:
First import the .mat file into a structure:
S = load(...);
Then you have a choice: either loop over its fieldnames and use dynamic fiekdname to access each table:
N = fieldnames(S);
N = natsort(N); % download from FEX
C = cell(size(N));
for k = 1:numel(N)
C{k} = S.(N{k});
end
T = vertcat(C{:}); % or whatever way you want to join the tables.
C = struct2cell(S);
T = vertcat(C{:});
If you want to use innerjoin (or similar) on multiple tables then you will need to use a loop.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Tables에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!