我有2個單元格陣列,它們是「celldata」和「data」。他們都在裏面存儲字符串。現在我想檢查「celldata」中的每個元素是否在「數據」中?例如,celldata = {'AB'; '是'; 'BC'}和數據= {'ABCD''BCDE''ACBE''ADEBC'}。我希望預期的輸出將是s = 3,對於AB來說,v = 1,對於BE來說s = 2和v = 2,對於BC來說s = 2和v = 2,因爲我只需要計算字符串的序列'celldata'在另一個單元格陣列matlab中的一個單元格陣列中計數項目
我寫的代碼如下所示。任何幫助肯定會受到讚賞。 我的代碼:
s=0; support counter
v=0; violate counter
SV=[]; % array to store the support
VV=[]; % array to store the violate
pairs = ['AB'; 'BE'; 'BC']
%celldata = cellstr(pairs)
celldata = {'AB'; 'BE'; 'BC'}
data={'ABCD' 'BCDE' 'ACBE' 'ADEBC '} % 3 AB, 2 BE, 2 BC
for jj=1:length(data)
for kk=1:length(celldata)
res = regexp(data(jj),celldata(kk))
m = cell2mat(res);
e=isempty(m) % check res array is empty or not
if e == 0
s = s + 1;
SV(jj)=s;
v=v;
else
s=s;
v= v+1;
VV(jj)=v;
end
end
end
對不起,什麼是's'和'v'?我在他們的關係中沒有看到韻律或理由? – user1543042
s表示序列「AB」出現在單元陣列「data = {'ABCD''BCDE''ACBE''ADEBC'}」中的支持程度。在這種情況下,我們有3個「AB」序列(在這裏「ACBE」可以被計爲包括1個「AB」)因此,s是3 – kgk
好的,但是你沒有解釋什麼是支持。在你的領域中,是'A'還是'B'出現的字符串的數量?你還沒有解釋'v'是什麼。是'v = 4 - s'? – user1543042