Compare two columns having different values.

1 次查看(过去 30 天)
I have 2 variables A and B, I want to compare the values with each other and want result like variable C. Is there any direct function I can use to get C?
A={'a','b','c','d','e'}
B={'b','c','d','e','f'}
C={'a',-
'b','b'
'c','c'
'd','d'
'e','e'
-.'f'}

回答(2 个)

Arif Hoq
Arif Hoq 2022-3-28
try this:
A={'a','b','c','d','e'};
B={'b','c','d','e','f'};
C={'a','-'
'b','b'
'c','c'
'd','d'
'e','e'
'-.','f'};
a=[A(2:end) B(1:end-1)]';
b=[[A(1) '-'];reshape(a,[],2)];
out=[b;['-.' B(end)]]
out = 6×2 cell array
{'a' } {'-'} {'b' } {'b'} {'c' } {'c'} {'d' } {'d'} {'e' } {'e'} {'-.'} {'f'}
  4 个评论
MakM
MakM 2022-3-29
The main idea is to compare the A and B and then get the answer, not to get the answer by hard coding.
I hope u hv understand my question :)
Arif Hoq
Arif Hoq 2022-3-29
A={'a','b','c','d','e'};
B={'b','c','d','e','f'};
for i=1:length(A)
for j=1:length(B)
if any(strcmp(A(i),B(j)))==1
C(i,:)=[A(i) B(j)];
end
end
end
output=[A(1) '-';C(2:end,:);'-.' B(end)]
output = 6×2 cell array
{'a' } {'-'} {'b' } {'b'} {'c' } {'c'} {'d' } {'d'} {'e' } {'e'} {'-.'} {'f'}

请先登录,再进行评论。


MJFcoNaN
MJFcoNaN 2022-4-1
I will suggest the table join to do it:
tbla=table;
tblb=table;
tbla.var={'a','b','c','d','e'}';
tblb.var={'b','c','d','e','f'}';
tblc=outerjoin(tbla, tblb);
C=tblc{:,:};
C(cellfun(@isempty,C))={'-'};

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by