MATLAB: заполнение матрицы с одинаковыми столбцами - PullRequest
6 голосов
/ 11 марта 2010

Я пытаюсь создать матрицу размером 3 x n с одинаковыми столбцами. Какой самый простой способ добиться этого? Concatenation

Ответы [ 3 ]

9 голосов
/ 11 марта 2010

* После 1001 *

n=7
x=[1;2;3]

это либо

repmat(x,[1 n])

или

x(:,ones(1,n))
3 голосов
/ 11 марта 2010

(Octave можно рассматривать как открытую / бесплатную версию MATLAB)

octave-3.0.3:2> rowvec = [1:10]
rowvec =

    1    2    3    4    5    6    7    8    9   10

octave-3.0.3:3> [rowvec; rowvec; rowvec]
ans =

    1    2    3    4    5    6    7    8    9   10
    1    2    3    4    5    6    7    8    9   10
    1    2    3    4    5    6    7    8    9   10

Используйте repmat, если количество строк велико.

octave-3.0.3:7> repmat(rowvec, 10, 1)
ans =

    1    2    3    4    5    6    7    8    9   10
    1    2    3    4    5    6    7    8    9   10
    1    2    3    4    5    6    7    8    9   10
    1    2    3    4    5    6    7    8    9   10
    1    2    3    4    5    6    7    8    9   10
    1    2    3    4    5    6    7    8    9   10
    1    2    3    4    5    6    7    8    9   10
    1    2    3    4    5    6    7    8    9   10
    1    2    3    4    5    6    7    8    9   10
    1    2    3    4    5    6    7    8    9   10
2 голосов
/ 11 марта 2010

Использовать умножение с матрицей 1 x 3

например, x * [1 1 1]

Edit:

В Октаве:

    octave-3.0.3.exe:1> x = [1;2;3;4]
x =

   1
   2
   3
   4


octave-3.0.3.exe:5> x * [1 1 1]
ans =

   1   1   1
   2   2   2
   3   3   3
   4   4   4
...