使用Matlab组合不等字符串数组以形成matix

时间:2016-08-17 13:05:19

标签: matlab

我有一组字母A到H的字符串变量,分配给M,N和P,如下所示:

M = BCD

N = ADFG

P = ADEHG

使用Matlab,我想将MNP组合为3X8矩阵。我希望它显示如下:

NaN   B     C     D    NaN   NaN   NaN   NaN

A    NaN   NaN    D    NaN    F     G    NaN   

A    NaN   NaN    D     E    NaN    G     H

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

假设您确实拥有Cell Arrays:

M = {'B','C','D'};
N = {'A','D','F','G'};
P =  {'A','D','E','H','G'};

F = unique([M,N,P])
F(~ismember(F(1,:),M)) = {NaN}

>>  NaN    'B'    'C'    'D'    NaN    NaN    NaN    NaN

F(~ismember(F(1,:),N)) = {NaN}

>>   'A'    NaN    NaN    'D'    NaN    'F'    'G'    NaN

F(~ismember(F(1,:),P)) = {NaN}

>>   'A'    NaN    NaN    'D'    'E'    NaN    'G'    'H'

您可以使用vertcat或简单地[;]组合答案。如果你想要矩阵,请做cell2mat,但我不确定你可以,除非你将Chars改为数字。