필터 지우기
필터 지우기

Merge table with different rows

조회 수: 84 (최근 30일)
Shelender Kumar
Shelender Kumar 2018년 11월 2일
댓글: Star Strider 2022년 2월 9일
I have two files with different rows but with the same number of columns and I want to combine it together but I am getting an error * All tables in the bracketed expression must have the same number of rows. *
file1 = readtable('306K-268K.csv'); file2 = readtable('266K-228K.csv'); Com = [file1 file2];
Thanks a lot for the help

채택된 답변

Star Strider
Star Strider 2018년 11월 2일
You probably want the outerjoin (link) function:
Com = outerjoin(file1,file2);
See if that does what you want.
  댓글 수: 4
MattyK
MattyK 2022년 2월 9일
Thanks very much for this solution, have always wanted it. It works perfectly
Star Strider
Star Strider 2022년 2월 9일
@MattyK My pleasure!

댓글을 달려면 로그인하십시오.

추가 답변 (4개)

madhan ravi
madhan ravi 2018년 11월 2일
편집: madhan ravi 2018년 11월 17일
You can't merge table with different number of size dimensions , use structure instead
  댓글 수: 8
Shelender Kumar
Shelender Kumar 2018년 11월 18일
Thanks a lot
madhan ravi
madhan ravi 2018년 11월 18일
Glad to help :)

댓글을 달려면 로그인하십시오.


Stéphane Rainville
Stéphane Rainville 2018년 11월 16일
You're missing a semi-colon to invoke vertical concatenation ('vertcat') rather than default horizontal concatenation ('horzcat').
For instance, two tables with different number of rows (but same number of columns), this does NOT work:
myBigTable = [myTable1 myTable2];
But this does:
myBigTable = [myTable1; myTable2];
I was facing a similar problem when storing tables of different lengths in a cell array.
myTables{1} = myTable1;
myTables{2} = myTable2;
and using
bigTable = [myTables{:}]
did not work because unwrapping and concatenating cell contents invoked horizontal concatenation. You can't just stick a semi-colon in there, so I had to explicitly invoke vertical concatenation like this:
bigTable = vertcat(myTables{:});
  댓글 수: 2
Shelender Kumar
Shelender Kumar 2018년 11월 17일
편집: Shelender Kumar 2018년 11월 17일
Thanks for the help
but I want to place my file1 and file2 side by side. That means it should give me the data like horizcat
Stéphane Rainville
Stéphane Rainville 2018년 11월 17일
Ah I see. Then yeah, tables of different length would be a problem.

댓글을 달려면 로그인하십시오.


the cyclist
the cyclist 2018년 11월 2일
I'm guessing you need the join command.
  댓글 수: 1
Shelender Kumar
Shelender Kumar 2018년 11월 2일
I have some NAN values in my column so I am getting this error The key variables for A and B cannot contain any missing values.

댓글을 달려면 로그인하십시오.


Peter Perkins
Peter Perkins 2018년 11월 6일
"Merge" is kind of vague. It may be that you just need to add a semicolon to vertically concatenate:
Com = [file1; file2]
  댓글 수: 3
HabenG
HabenG 2021년 11월 3일
편집: HabenG 2021년 11월 3일
Have you figured out the issues?? seems like there is no way to simply combine columns of different size matrrix, table, array etc...i feel like there should be a simple fuction for this
Peter Perkins
Peter Perkins 2021년 11월 8일
The current way to do this is to create the same number of rows in the smaller matrix/table/whatever. That's already been shown in an earlier reply.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Data Type Identification에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by