Я пытаюсь создать матрицу, которая составляет 3 x n с каждым из столбцов, являющихся тем же. Каков самый легкий способ достигнуть его? Конкатенация?
После
n=7
x=[1;2;3]
это либо
repmat(x,[1 n])
, либо
x(:,ones(1,n))
Используйте умножение с матрицей единиц 1 x 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
(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