# creating a repeated matrix 2

Asked by Sabbas on 2 Jul 2012
Latest activity Commented on by Sabbas on 2 Jul 2012

Hi all,

I have

```k1x=repmat(h(19,1), [3,1])   ;
```
```k2x=repmat(h(37,1), [3,1])   ;
```
` k3x=repmat(h(55,1), [3,1])   ;`
` k4x=repmat(h(73,1), [3,1])   ;`
```k5x=repmat(h(91,1), [3,1])   ;
```
```kxtotal= [k1x; k2x;k3x;k4x;k5x];
```

h is a column of numnbers As you can see

`               37=19+18`
`               55=37+18`
`               73=55+18.`

So I add the number 18 to obtain the sequence 19, 37, 55, 73 ...

Is there a better or clever way to construct kxtotal.

To be honest Isakson, I would prefer (as you did in my previous question) something like

```   ixs    = repmat( [1:6], [3,1] );
ktotal = arrayfun( @(ii) sprintf('S%u',ii), ixs(:), 'uni', false ); ```

that is, the approach without the loop.

thanks

Sabbas on 2 Jul 2012

yes h(19,1)" is the 19:th value of a column vector.

I just realized that what I proposed is wrong

that is

ktotal = repmat( [h(19:18:19+4*18,1)], [3,1] );

is wrong

per isakson on 2 Jul 2012

How do I get the vector, h?

Sabbas on 2 Jul 2012

Sorry h=rand(100,1)

## Products

No products are associated with this question.

Answer by per isakson on 2 Jul 2012
Edited by per isakson on 2 Jul 2012

Try this

```    ktotal = repmat( transpose( h([19:18:19+4*18]) ), [3,1] );
ktotal = ktotal(:);```

I use "transpose" instead of the blip, "'", because the latter is too easy to miss.

## 1 Comment

Sabbas on 2 Jul 2012

Many thanks! it is ok!