【发布时间】:2017-12-07 17:20:51
【问题描述】:
我在 MATLAB 中有一个维度为 Nx1 的向量 A,例如
N = 5;
A = [1
2
3
4
5];
我想构造一个维度为(N-1) x N 的矩阵B,这样:
对于i=1,...,N,B(:,i) 包含1,2,...,i-1,i+1,...,N 的行A。
在上面的例子中,
B = [2 1 1 1 1
3 3 2 2 2
4 4 4 3 3
5 5 5 5 4]
这段代码做我想做的事:
B=zeros(N-1,N);
for i=1:N
if i>1 && i<N
B(:,i)=[A(1:i-1); A(i+1:end)];
elseif i==1
B(:,i)=A(i+1:end);
elseif i==N
B(:,i)=A(1:i-1);
end
end
但我想将它矢量化。有什么帮助吗?
【问题讨论】:
标签: matlab matrix vector vectorization