代码之家  ›  专栏  ›  技术社区  ›  stanigator

matlab:用相同的列填充矩阵

  •  6
  • stanigator  · 技术社区  · 15 年前

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

    3 回复  |  直到 15 年前
        1
  •  9
  •   AVB    15 年前

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

    要么是

    repmat(x,[1 n])
    

    x(:,ones(1,n))
    
        2
  •  3
  •   kennytm    15 年前

    (八度可被视为一个开源/免费版本的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
    
        3
  •  2
  •   James    15 年前

    用一个1×3的一个矩阵相乘

    如, x * [1 1 1]

    编辑:

    在倍频程中:

        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