gpt4 book ai didi

arrays - Matlab:重复行和列并将其连接到新数组中

转载 作者:太空宇宙 更新时间:2023-11-03 20:12:32 25 4
gpt4 key购买 nike

我有两个 4×4 数组:

a1 = [ 1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16 ]
a2 = [ 17 18 19 20; 21 22 23 24; 25 26 27 28; 29 30 31 32 ]

我需要创建 16×8 数组 C:

1   2   3   4   17  18  19  20
1 2 3 4 21 22 23 24
1 2 3 4 25 26 27 28
1 2 3 4 29 30 31 32
5 6 7 8 17 18 19 20
5 6 7 8 21 22 23 24
5 6 7 8 25 26 27 28
5 6 7 8 29 30 31 32
9 10 11 12 17 18 19 20
9 10 11 12 21 22 23 24
9 10 11 12 25 26 27 28
9 10 11 12 29 30 31 32
13 14 15 16 17 18 19 20
13 14 15 16 21 22 23 24
13 14 15 16 25 26 27 28
13 14 15 16 29 30 31 32

结果数组 C 的左半部分(从第 1 到第 4 列)应该重复数组 a1 的第 i 行 4 次,右半部分(从第 5 到第 8 列)应该重复数组 a2 的 4 次。

下面是我的代码。

p=4
n=4

for i=1:n
b=n*i;
a=n*(i-1)+1;
for j=1:p
for k=a:b
C(k,j)=a1(i,j);
end;
end;
end;

for i=1:n
b=n*i;
a=n*(i-1)+1;
for j=p+1:2*p
l=1;
for k=a:b
C(k,j)=a2(l,j-p);
l=l+1;
end;
end;
end;
C;
size_C=size(C)

问题。是否可以在没有 for 循环的情况下创建结果数组 C?我可以使用哪些功能?

最佳答案

是的,这是可能的。一种方法是使用 kronrepmat

C = [ kron(a1, ones(4,1)) repmat(a2, 4, 1)]

也许 4 应该从其中一个矩阵的大小导出

关于arrays - Matlab:重复行和列并将其连接到新数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39249199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com