首页 > 解决方案 > Matlab中的Repmat复制特定元素

问题描述

我有以下代码行,其中我"41"在我的cell array调用中找到了一个事件Events(下面包含此数组的最小示例),并且代码行允许我添加标记为"411"after的 8 个事件,"41"并将其输出out1(结果显示为出色地)。我的问题是我需要包含BEFORE的5条目,但我不知道该怎么做。"411""41"

我怎样才能修改下面的行以便能够轻松地做到这一点?

out1 = arrayfun( @(x,b) [x; repmat({'411'}, 8*b, 1)], Events, strcmp('41',Events), 'uni', 0 );
out1 = vertcat(out1{:});
Events = ['9991'    '9991'  '9991'  '9991'  '9991'  '9991'  '9992'  '10'    '11'    '41'    '42'    '10'    '11'    '43'    '44'];

out1 = ['9991'  '9991'  '9991'  '9991'  '9991'  '9991'  '9992'  '10'    '11'    '41' '411' '411'  '411' '411' '411' '411' '411' '411'   '42'    '10'    '11'    '43'    '44'];

Thanks!

标签: arraysmatlabmatrixfindcell-array

解决方案


为了提供帮助,您能否更具体地定义问题?数组“事件”总是一维的吗?你认为“41”只会出现一次还是多次出现?

我现在无法测试它,但我想应该这样做:

out1 = arrayfun(@(x,b) [repmat({'411'}, 5*b, 1), x], 事件, strcmp('41',Events), 'uni', 0); out1 = vertcat(out1{:});

如果您仍然遇到问题,请告诉我,今晚我可以更深入地了解一下


推荐阅读