如何在matlab中将二进制数值的数值单元和字符单元合并为一个单元

如何在matlab中将二进制数值的数值单元和字符单元合并为一个单元,matlab,Matlab,我有一个7395X28数值的matlab单元,还有一个7395x8字符单元,其中有二进制值。我希望二进制值单元格合并到这个数值单元格中,不做任何更改 例如,让数字单元A和二进制单元B我这样合并它们 C=[A,B] 这给了我一个错误,告诉我不能将字符单元格与数值单元格合并。请任何人帮我解决这个问题 输出应该是一个合并的单元格,单元格的最后一列应该由二进制值组成。请帮助。代码 a1 = num2cell(randi(5,2,3)) %%// cell array of numerical value

我有一个7395X28数值的matlab单元,还有一个7395x8字符单元,其中有二进制值。我希望二进制值单元格合并到这个数值单元格中,不做任何更改

例如,让数字单元A和二进制单元B我这样合并它们

C=[A,B]

这给了我一个错误,告诉我不能将字符单元格与数值单元格合并。请任何人帮我解决这个问题

输出应该是一个合并的单元格,单元格的最后一列应该由二进制值组成。请帮助。

代码

a1 = num2cell(randi(5,2,3)) %%// cell array of numerical values
a2 = {'0' '1' '1'; '0' '1' '0' } %%// cell array of characters that are binary numbers
out = num2cell(cell2mat(a1)*10+cell2mat(a2)-'0') 
A={1,2,3;
    2,3,4;
    4,5,6;
    7,8,9;
    0,9,9}

B={'0001'; '0011'; '0111' ;'1111' ;'0101'} 

C = [A cellstr(cell2mat(B))]
A={1,2,3;
    2,3,4;
    4,5,6;
    7,8,9;
    0,9,9}

B = ['00000001';'00010001';'00000001';'10110001';'01010011']

C = [A cellstr(B)]
输出

a1 = 

    [4]    [3]    [5]
    [2]    [4]    [5]


a2 = 

    '0'    '1'    '1'
    '0'    '1'    '0'


out = 

    [40]    [31]    [51]
    [20]    [41]    [50]
C = 

    [1]    [2]    [3]    '0001'
    [2]    [3]    [4]    '0011'
    [4]    [5]    [6]    '0111'
    [7]    [8]    [9]    '1111'
    [0]    [9]    [9]    '0101'
C = 

    [1]    [2]    [3]    '00000001'
    [2]    [3]    [4]    '00010001'
    [4]    [5]    [6]    '00000001'
    [7]    [8]    [9]    '10110001'
    [0]    [9]    [9]    '01010011'
编辑1:

代码

a1 = num2cell(randi(5,2,3)) %%// cell array of numerical values
a2 = {'0' '1' '1'; '0' '1' '0' } %%// cell array of characters that are binary numbers
out = num2cell(cell2mat(a1)*10+cell2mat(a2)-'0') 
A={1,2,3;
    2,3,4;
    4,5,6;
    7,8,9;
    0,9,9}

B={'0001'; '0011'; '0111' ;'1111' ;'0101'} 

C = [A cellstr(cell2mat(B))]
A={1,2,3;
    2,3,4;
    4,5,6;
    7,8,9;
    0,9,9}

B = ['00000001';'00010001';'00000001';'10110001';'01010011']

C = [A cellstr(B)]
输出

a1 = 

    [4]    [3]    [5]
    [2]    [4]    [5]


a2 = 

    '0'    '1'    '1'
    '0'    '1'    '0'


out = 

    [40]    [31]    [51]
    [20]    [41]    [50]
C = 

    [1]    [2]    [3]    '0001'
    [2]    [3]    [4]    '0011'
    [4]    [5]    [6]    '0111'
    [7]    [8]    [9]    '1111'
    [0]    [9]    [9]    '0101'
C = 

    [1]    [2]    [3]    '00000001'
    [2]    [3]    [4]    '00010001'
    [4]    [5]    [6]    '00000001'
    [7]    [8]    [9]    '10110001'
    [0]    [9]    [9]    '01010011'
编辑2:

代码

a1 = num2cell(randi(5,2,3)) %%// cell array of numerical values
a2 = {'0' '1' '1'; '0' '1' '0' } %%// cell array of characters that are binary numbers
out = num2cell(cell2mat(a1)*10+cell2mat(a2)-'0') 
A={1,2,3;
    2,3,4;
    4,5,6;
    7,8,9;
    0,9,9}

B={'0001'; '0011'; '0111' ;'1111' ;'0101'} 

C = [A cellstr(cell2mat(B))]
A={1,2,3;
    2,3,4;
    4,5,6;
    7,8,9;
    0,9,9}

B = ['00000001';'00010001';'00000001';'10110001';'01010011']

C = [A cellstr(B)]
输出

a1 = 

    [4]    [3]    [5]
    [2]    [4]    [5]


a2 = 

    '0'    '1'    '1'
    '0'    '1'    '0'


out = 

    [40]    [31]    [51]
    [20]    [41]    [50]
C = 

    [1]    [2]    [3]    '0001'
    [2]    [3]    [4]    '0011'
    [4]    [5]    [6]    '0111'
    [7]    [8]    [9]    '1111'
    [0]    [9]    [9]    '0101'
C = 

    [1]    [2]    [3]    '00000001'
    [2]    [3]    [4]    '00010001'
    [4]    [5]    [6]    '00000001'
    [7]    [8]    [9]    '10110001'
    [0]    [9]    [9]    '01010011'

如果你能提供一个最小的(非)工作示例来重现不希望出现的行为,人们会非常乐意帮助你。我假设输出是一个数值单元格数组,对吗?您好,先生,事实上,B数组是一个字符数组,当我打开它时,matlab会显示val=0000000 1,依此类推,当我按照您的建议执行操作时,它会从非单元格数组对象向我提供此错误单元格内容引用。cell2mat(第43行)中的错误cellclass=class(c{1});使用一些示例输入和输出编辑您的问题。不,如果A={1,2,3,3,4,5,6,7,8,9,0,9,9}和B={0001 0011 0111 1111 0101},那么C={1,2,30001 2,3,40011 4,5,60111 7,8,91111 0,9,90101}希望我自己清楚,如果我合并7395X28和7395x8,我想要一个7395X29大小的牢房?@Hari签出Edit-1,希望这就是你想要的。@Hari签出Edit 2,真的希望这次它对你有用!先生,仍然有错误,让我解释清楚,从一开始,我有一个具有不同特征的数据集,每个特征在不同的单元中导入到matlab中。所有的特征都有数值,除了由字符串值组成的1,我使用代码B=dec2bin(cellfun(@(string)find)(strcmp(string,unique(alchemycategory,'stable')),1,'first'),alchemycategory),8将这些字符串值转换成二进制;在那之后,我把所有的数字特征单元格合并成1,我想把二进制单元格合并成1,但是我做不到,请帮助