我有cell
个char
数组:
a={'1';'1';'1';'1';'1';'3';'3';'3';'3';'3';'3';'4';'4';'4';'4'};
我希望将其转化为:
a={'1';'';'';'';'';'3';'';'';'';'';'';'4';'';'';''};
答案 0 :(得分:10)
首先,找到select b_record_id
from b_records
order by b_record_id desc
的唯一元素及其第一个索引。然后将a
的所有其他条目设置为a
。
''
正如CST-Link所指出的,重复索引的计算和空字符串的分配都可以加速(特别是[~, ii] = unique(a);
ind = setdiff(1:numel(a), ii);
[a{ind}] = deal('');
很慢):
setdiff
答案 1 :(得分:5)
对于大型阵列来说,这可能很快:
a=repmat({'1';'1';'1';'1';'1';'3';'3';'3';'3';'3';'3';'4';'4';'4';'4'}, 100000, 1);
[u,n] = unique(flipud(a));
b = repmat({''}, size(a));
b(n) = u;
a = flipud(b);