Matlab 中的 Repmat 用于复制特定元素
Repmat in Matlab to replicate specific elements
我有以下代码行,我在我的 cell array
中找到了一个名为 Events
的事件 "41"
(下面包含此数组的最小示例)并且这些代码行允许我在 "41"
之后添加了 8 个标记为 "411"
的事件,这在 out1
中输出(结果也显示)。我的问题是我需要在 "41"
之前包含 "411"
的 5
个条目,但我不确定该怎么做。
我如何修改下面的行才能轻松做到这一点?
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!
为了提供帮助,您能否更具体地定义问题?数组“Events”总是单维的吗?你认为“41”只会出现一次还是多次?
我现在无法测试它,但我想这应该可以:
out1 = arrayfun(@(x,b) [repmat({'411'}, 5*b, 1), x], 事件, strcmp('41',事件), 'uni' , 0 );
out1 = vertcat(out1{:});
如果您仍然遇到问题,请告诉我,今晚我可以更深入地了解一下
我有以下代码行,我在我的 cell array
中找到了一个名为 Events
的事件 "41"
(下面包含此数组的最小示例)并且这些代码行允许我在 "41"
之后添加了 8 个标记为 "411"
的事件,这在 out1
中输出(结果也显示)。我的问题是我需要在 "41"
之前包含 "411"
的 5
个条目,但我不确定该怎么做。
我如何修改下面的行才能轻松做到这一点?
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!
为了提供帮助,您能否更具体地定义问题?数组“Events”总是单维的吗?你认为“41”只会出现一次还是多次?
我现在无法测试它,但我想这应该可以:
out1 = arrayfun(@(x,b) [repmat({'411'}, 5*b, 1), x], 事件, strcmp('41',事件), 'uni' , 0 ); out1 = vertcat(out1{:});
如果您仍然遇到问题,请告诉我,今晚我可以更深入地了解一下