Hi Alberto,
From the data you shared, I understand that you have nodes and faces data for two separate geometries and wanted to have common faces and nodes data for the combined geometry.
In order to achieve your desired result, you can do something like I did in the code below, i.e., first combine the nodes, followed by calculating the adjusted face values for one of the geometry, and then, at last, find the combined face values for the whole geometry.
data = load('combination.mat');
tri1 = triangulation(data.faces_sol_1,data.nodes_sol_1);
tri2 = triangulation(data.faces_sol_2,data.nodes_sol_2);
trisurf(tri1,'FaceColor','green');
trisurf(tri2,'FaceColor','red');
nodes_combined = [data.nodes_sol_1; data.nodes_sol_2];
num_nodes1 = size(data.nodes_sol_1, 1);
faces2_adjusted = data.faces_sol_2 + num_nodes1;
faces_combined = [data.faces_sol_1; faces2_adjusted];
tri_combined = triangulation(faces_combined, nodes_combined);
trisurf(tri_combined,'FaceColor','blue');
I hope it helps!