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'
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/24 03:13:01
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'
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有两个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'
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
end
c