clo*_*viz 2 matlab matrix vectorization
我想复制一个向量N
时间来创建一个矩阵,每个副本向下移动1行.见图像(第一列是向量1到5).如果不使用for循环就能实现这一点会很棒.
到目前为止,能够做到这一点repmat(my_vector, 1, 5)
来创建一个N×5矩阵.
a = [1 2 3 4 5]
out = tril( toeplitz(a) )
Run Code Online (Sandbox Code Playgroud)
要么
out = toeplitz(a, a*0)
%// out = toeplitz(a, zeros(size(a)) ) %// for large arrays
Run Code Online (Sandbox Code Playgroud)
或者如果你不介意一些快乐的翻转:
out = flipud( hankel( flipud(a(:)) ) )
Run Code Online (Sandbox Code Playgroud)