How do I combine column vectors with different rows


For example I have two column vectors (string)

A = { "aa", "ab", "ac" }

B = { "bb", "bc" }

I want to create:

AB =  aa   .
      ab  bb
      ac  bc


AB =  aa  bb
      ab  bc
      ac    .
Tags: asked October 3, 2012

1 Answer


If your data are string arrays, then you could concatenate a “.” onto the top (or bottom) of the string array with fewer rows, like this:

string A = { "aa", "ab", "ac" };
string B = { "bb", "bc" };

B2 = "."$|B;
AB = A$~B2;
"AB = " AB;

In the code above, $| performs vertical concatenation of strings and string arrays while $~ performs horizontal concatenation of strings and string arrays.

If what you have is instead character matrices, then you have the option of adding a GAUSS missing value as the extra element or a character dot:

AM = { "aa", "ab", "ac" };
BM = { "bb", "bc" };

BM2 = miss(0,0)|B;
ABM = A~B2;
"AB = " AB;

The miss function creates a missing value. If you wanted instead to add a character dot, then change the assignment of BM2 to:

BM2 = "."|B;