我有两个列向量,每个列向量 size <nx1>
。该config
向量721,722,723 and 724
仅包含数字length
,而 size 的向量<nx1>
仅包含数字。我需要构建矩阵 Z,它的大小<3x3n>
:
note:matrices a,b,c and d are each <3x3> matrices.
在这里很难用文字表达规则,让我先举个例子:
length=[1 2 3],config=[721 722 723],a=eye(3),b=ones(3),c=magic(3);
z=[ 1 0 0 2 2 2 24 3 18 0 1 0 2 2 2 9 15 21 0 0 1 2 2 2 12 27 6]
也就是说,如果 config(i) 为 722 且 length(i) 为 2,则将 2*matrix_a 附加到 z 矩阵,依此类推。
我做了以下事情:
z=[0 0 0;0 0 0;0 0 0];
for i=1:3
[~,col]=size(z);
if config(i)==721
z(:,col+[1:3])=length(i)*a
end
if config(i)==722
z(:,col+[1:3])=length(i)*b
end
if config(i)==723
z(:,col+[1:3])=length(i)*c
end
end
z=z(:,4:end)
但是没有更好的无环矢量化方法吗?