首页 > 解决方案 > 如何在 Matlab 中组合三个单元格数组以制作具有三列的矩阵/表格?

问题描述

我的第一个名为 removed 的数组是一个 61 x 1 数组,我的第二个名为 keep 的数组是一个 45 x 1 数组,我的第三个名为 deleted_rxns1 的数组是一个 16 x 1 数组

我在用;

    combo=vertcat(removed, kept, deleted_rxns1)

但是,这只是将它们完全组合成一个 122 x 1 阵列。对于已删除、保留和删除的_rxns1,我需要三列。

我还需要最好通过它们的公共行名对齐它们,并在不会发生这种情况的地方设置 NA。keep 有一些与删除相同的行,而 deleted_rxns1 有一些与删除相同的行名称。如果最终输出看起来像这样会很方便;

     Removed       Kept        Deleted
       NH3          NA            NH3
       CH4          CH4           NA
       02           02            NA
       C02          NA            CO2 

如果这是不可能的,我仍然希望有一个三列的矩阵。请问有人可以帮忙吗?

谢谢

标签: matlab

解决方案


看到数组的大小不同,您无法将它们连接成二维矩阵。但是,您可以使用与您通过cell数组请求的类似的结构:

c = {removed, kept, deleted_rxns1}; 
% c{1} == removed
% c{2} == kept
% c{3} == deleted_rxns1

至于您的第二个请求,您没有提供几乎足够的信息来分类每列中的哪些行相互粘附 - 所以在您提供更多信息之前我无法提供帮助。


推荐阅读