matlab中元胞数组(cell)转换为矩阵、
cell转换为矩阵函数为:cell2mat(c),其中c为待转换的元胞数组;
转化之后的矩阵可能不满足我们对矩阵维数的要求,那么也许还需要下面两个函数:
——reshape(A,m,n,p,...),将矩阵A变换为m*n*p*...的矩阵;
——permute(A,[1,3,2]),将矩阵A的第3维和第2维交换,从而满足顺序要求;
下面举一个我自己用过的例子:
H——<K*1>cell,其中每个元素为U*S*N*T的四维矩阵(H为WINNERII的信道矩阵)
U:接收天线数目 S:发送天线数目 N:多径数目 T:每条链路采样点数 K:链路数
为了将H变换为U*S*N*T*K的五维矩阵,进行下述变换:
(1)H1=cell2mat(H);%转换为矩阵,如下图所示,则H1为(U*K)*S*N*T的四维矩阵
(2)H2=reshape(H2,U,K,S,N,T);%改变矩阵H1的形状
(3)H3=permute*(H2,[1,3,4,5,2];%将矩阵变化为U*S*N*T*K的矩阵