Merge table with different rows

50 次查看(过去 30 天)
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

请先登录,再进行评论。

更多回答(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 个评论

请先登录,再进行评论。


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.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by