我有一个包含30000行和20列的单元格类型变量A:
A={12 1985 54,4678175115029 100 21 49 false 48,4 0 0 0 ...
13 1985 46,4181591120695 189 22 44 false 51,8 0 0 0
16 1985 53,0972274761171 183 22 12 false 48,6 0 0 0
12 1986 43,1279032643053 173 22 14 false 48,6 0 0 0}
具有300行和1列的单元格类型变量B:
B={17
12
74
16
117
870
...}
如果变量B与A的第一行匹配,我试图将A列添加到A中。例如,在此示例中,我将得到:
A={12 1985 54,4678175115029 100 21 49 false 48,4 0 0 0 12...
13 1985 46,4181591120695 189 22 44 false 51,8 0 0 0 []
16 1985 53,0972274761171 183 22 12 false 48,6 0 0 0 16
12 1986 43,1279032643053 173 22 14 false 48,6 0 0 0 12}
A中可能存在重复值(参见最后一行)。在那种情况下,再次重复比赛。
我相信我必须使用ismember
,但我没有成功。
谢谢。
答案 0 :(得分:2)
你的直觉是正确的,ismember
可以在这里使用。
看看这是否适合你 -
[v1,v2] = ismember(cell2mat(A(:,1)),cell2mat(B))
A(v1,end+1) = B(v2(v2~=0))