Merge two cells of different size but have one rows in common
2 views (last 30 days)
Show older comments
Hello Guys,
I have two Matlab cells that I have one row in common. I have to merge to Add to the first the uncommon rows of the second one.
commonValue=intersect(r_ptf{12,:},r_ptf3{12,:});
Could someone help me out
4 Comments
dpb
on 25 Jan 2023
When it comes to cell arrays, it's pretty-much impossible to write generic code w/o knowing the content since it could be anything.
As @Dyuman Joshi requested, for somebody to be able to help, we'll need to see a small sample case that illustrates what the content of the two cell arrays is...it doesn't need (and shouldn't be) huge; just make up a test case that illustrates wht your situation is...only 10 or so rows and columns would be more than enough; but it needs to be representative of the real thing.
Answers (1)
Sarthak
on 6 Mar 2023
Hi,
Here are the steps and the code you could refer:
% Find the common value
commonValue = intersect(r_ptf{12,:}, r_ptf3{12,:});
% Find the indices of the rows that have the common value in both cells
idx1 = find(ismember(r_ptf{12,:}, commonValue));
idx2 = find(ismember(r_ptf3{12,:}, commonValue));
% Remove the rows with the common value from the second cell
r_ptf3(idx2,:) = [];
% Merge the two cells by adding the uncommon rows of the second cell to the first cell
r_ptf = [r_ptf; r_ptf3];
Refer to the following documentation for ismember:
0 Comments
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!