作业帮 > 综合 > 作业

matlab根据数据相同的列合并cell

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/01 19:06:20
matlab根据数据相同的列合并cell
有两个cell型矩阵,a = {'a','m1';'a','m2';'b','m2';'c','m3'}; b = {'a','x1'; 'c','x2'};
需要将a和b中第一列相同的合并,得到的结果为 c = {'a','m1','x1' ;'a' ,'m2','x1'; 'b','m2',''; 'c','m3','x2' };
有没有自带函数或者用向量的方法可以实现上述结果的?还是说要写循环自己匹配
matlab根据数据相同的列合并cell
a = {'a','m1';'a','m2';'b','m2';'c', 'm3'};
b = {'a', 'x1'; 'c', 'x2'};
[m1,n1]=size(a);
[m2,n2]=size(b);
c=cell(4,3);
for i=1:m1
    for j=1:n1
        if (~isequal(a(i,j),b(1,1)))&&(~isequal(a(i,j),b(2,1)))
            c(i,j)=a(i,j);
        end
        if isequal(a(i,j),b(1,1))&&isequal(a(i,j),b(2,1))
            c(i,j)=a(i,j);
            c(i,j)='';
        end
        if ~isequal(a(i,j),b(1,1))&&isequal(a(i,j),b(2,1))
             c(i,j)=a(i,j);
             c(i,3)=b(1,1);
        end
        if isequal(a(i,j),b(1,1))&&~isequal(a(i,j),b(2,1))
             c(i,j)=a(i,j);
             c(i,3)=b(2,1);
        end
    end
endc