在MATLAB中更改矩阵的大小

时间:2015-05-18 06:56:28

标签: matlab

我获得了以下矩阵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

我该怎么做?

2 个答案:

答案 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个向量