我获得了以下矩阵A
,大小为3x1,B
大小为5x1
A = B=
1 A
2 B
3 C
D
E
我想在15x2矩阵中转换矩阵C
C =
1 A
1 B
1 C
1 D
1 E
2 A
.
.
.
3 E
我该怎么做?
答案 0 :(得分:3)
可以使用repmat
D = repmat(A',size(B,1),1);
C = [D(:),repmat(B,size(A,1),1)]
答案 1 :(得分:2)
根据用于从Generate All Possible combinations of a Matrix in Matlab
生成真值表的代码,这是一个不同的备选方案ind = dec2base(0:power(5,2)-1,5)-47;
C = [A(ind(1:15,1) + 48, B(ind(1:15,2)];
如果你想概括它
m = max(size(A,1),size(B,1));
n = size(A,1)*size(B,1);
col = 2;
ind = dec2base(0:power(n,col)-1,n)-47;
ind = ind(1:n,:);
C = [A(ind(:,1) + 48, B(ind(:,2)];
+ 48
只是将您的A
矩阵从数字矩阵转换为字符矩阵,以便C
可以包含数字和字母。如果A
已经是char矩阵,您可以将其遗漏。
对于这种技术有用的是,通过更改col
,这可以概括为以类似的方式梳理超过2个向量