3 x 1 means that if you use multidimensional indexing for the struct instead of linear indexing, then the first dimension is length 3 and the second is length 1.
Although it is common to use linear indexing for structs, there are other uses where it makes sense to use multidimensional indexing.
Imagine, for example, that you are doing finite element modeling, then you might have a 2 dimensional or 3 dimensional set of points being modeled. Each point might have several pieces of information associated, perhaps of different data types, so it might make sense to use a struct to hold the data. In a rigid mesh situation, there could a one-to-one relationship between 2 dimensional or 3 dimensional coordinates and the structure of data associated for that coordinate.
In the FEM case, a different way of managing the data might be very reasonable, where you have one variable per property and that variable is indexed by the coordinates. But now extend to the case where not all the nodes have the same properties. But not always: if two nodes can exchange properties then it can be a lot more convenient to move the structure of data than to run through all of the variables. And also, the case with structures is easier to generalize: if you move the structs rather than dig through all the variables then as you add new properties you do not need to update all of the code that runs through individual variables acting on each of them.