给定这个向量
a = [1 2 3 4]
我想创建一个这样的矩阵
b = [1 0 0 0;
2 1 0 0;
3 2 1 0;
4 3 2 1;
0 4 3 2;
0 0 4 3;
0 0 0 4]
以不使用循环的矢量化方式。
最佳答案
提示:使用conv2
(悬停鼠标查看代码):
a = [1 2 3 4];
b = conv2(a(:), eye(numel(a)));
或者,在类似的情况下,您可以使用 convmtx
(来自信号处理工具箱):
a = [1 2 3 4];
b = convmtx(a(:), numel(a));
关于matlab - 通过为每一列向下滑动一个给定的向量来创建一个矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28699365/