title: How to concatenate multiple structure results vertically?
body: <p>If I have structure array and access it with matrix index, I get multiple anses. </p>
  
  <pre><code>&gt;&gt; a=struct([])
  
  a = 
  
  0x0 struct array with no fields.
  
  &gt;&gt; a(1).f1=[1;2]
  
  a = 
  
      f1: [2x1 double]
  
  &gt;&gt; a(2).f1=[1;2;3]
  
  a = 
  
  1x2 struct array with fields:
  
      f1
  
  &gt;&gt; a([1 2]).f1
  
  ans =
  
       1
       2
  
  
  ans =
  
       1
       2
       3
  </code></pre>
  
  <p>What is the nature of this result? Can I generate it in other way?</p>
  
  <p>For example, may I write my own function or procedure, which will return such a result?</p>
  
  <p>Why assignment of this result gives first element, not last like in lists?</p>
  
  <pre><code>&gt;&gt; b=a([1 2]).f1
  
  b =
  
       1
       2
  </code></pre>
  
  <p>If I enclose such a result in brackets, I get automatic horizontal concatenation. </p>
  
  <pre><code>&gt;&gt; [a([1 2]).f1]
  Error using horzcat
  Dimensions of matrices being concatenated are not consistent.
  </code></pre>
  
  <p>What is the name of this syntax?</p>
  
  <p>How to make vertical concatenation?</p>