我正在尝试创建一个3 x n的矩阵,每个列都是相同的。实现它的最简单方法是什么?级联?
答案 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