我有一个单元格数组,包含5列和大约5000行的字符串元素。例如:
1997年查尔斯豪斯材料化学公司
这些年从1997年到2013年,当岁月流逝时,你会发现重复。我想得到的是一个新的单元格数组,在这种情况下,第二列和第三列的组合发生了变化。例如,原始单元格阵列:
1997年查尔斯·豪斯材料化学公司 1997年Rita办事处金融银行初始% 1998年Rita办公室金融银行%无变动 1999年查尔斯·豪斯材料化学制品%没有变化 2000年查尔斯办公室材料化学制品第二栏的变化 二00一年查尔斯办公室物料化学药品百分比无变动 2003年丽塔星空金融银行第二栏%的变动 2005年查尔斯城堡材料化学制品在第二栏中的变化 2010年丽塔·穆恩金融银行第二栏中的变化
我想让我的新数组给我第一行/原始行,以及你观察到变化的情况。例如产出:
1997年查尔斯豪斯材料化学公司 1997年丽塔办事处金融银行 2000年查尔斯办公室材料化学品 2003年丽塔星空金融银行 2005年查尔斯城堡材料化学公司 2010年丽塔·穆恩金融银行
我的问题主要与我处理字符串有关。如果有人能帮我,我会很感激的。非常感谢您的光临。
发布于 2014-05-24 15:02:33
码
%// Assuming input_cellarr is the input cell array
[~,~,col2id] = unique(input_cellarr(:,2),'stable')
[~,~,col3id] = unique(input_cellarr(:,3),'stable')
[~,unqrows] = unique([col2id col3id],'rows','stable')
out = input_cellarr(unqrows,:) %// Desired output发布于 2014-05-24 15:08:22
首先,我过滤掉了第一栏,因为这一年并不重要。然后,您必须将前一行与下一行进行比较。这是使用X(1:end-1,2:end)和X(2:end,2:end))完成的。只有在行列式相等的情况下,一切都没有改变。
changes=all(strcmpi(X(1:end-1,2:end),X(2:end,2:end)),2)
%at this point we are missing the first line
changes=[true;changes]
%finally use logical indexing to select the relevant data.
result=X(changes,:);https://stackoverflow.com/questions/23846291
复制相似问题