MATLAB:填充矩阵,每列相同

时间:2010-03-11 09:52:52

标签: matlab matrix concatenation

我正在尝试创建一个3 x n的矩阵,每个列都是相同的。实现它的最简单方法是什么?级联?

3 个答案:

答案 0 :(得分:9)

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

它要么

repmat(x,[1 n])

x(:,ones(1,n))

答案 1 :(得分:3)

(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 :(得分:2)

使用1 x 3矩阵的乘法

例如,x * [1 1 1]

编辑:

在Octave:

    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