arrays - 从数组中删除元素
问题描述
问题:
我有两个数组A
和B
:
A = [0, 1, 2, 3]; %A will always be from 0 to N where N in this case is 3.
B = [0, 1, 3, 1, 9, 4, 6, 2, 5, 9, 10, 11, 3, 8, 1, 5, 9, 10];
weights_B = [3, 4, 5, 6];
我想将 的第一个元素与A
的第一个3
元素进行比较B
,将 的第二个元素与A
的下一个4
元素进行比较B
。如果 的元素A
相等,我将其从 中删除B
。所以在例子中:
if (A(1) == B(1:3))
remove A(1) from B
相似地,
我想与ieA(2)
的下一个4
元素进行比较:B
B(4:7)
if (A(2) == B(4:7))
remove A(2) from B
我想与ieA(3)
的下一个5
元素进行比较B
B(8:12)
if (A(3) == B(8:12))
remove A(3) from B
我想与ieA(4)
的下一个6
元素进行比较B
B(13:18)
if (A(4) == B(13:18))
remove A(4) from B
注意:数组决定了应该分别比较weights_B
的元素个数B
A(1), A(2), .. , A(4)
所以到底B
应该具备以下要素:
B = [1, 3, 9, 4, 6, 5, 9, 10, 11, 8, 1, 5, 9, 10];
需要的解决方案:
有什么方法可以做到这一点而不必对索引进行硬编码?
解决方案
这是一种没有硬编码的方法:
Bw = mat2cell(B, 1, weights_B); % split into chunks
result = cell(size(Bw)); % initiallize result
for k = 1: numel(A)
result{k} = Bw{k}(Bw{k}~=A(k)); % fill each chunk of the result
end
result = [result{:}]; % concatenate into a row vector
推荐阅读
- node.js - 如何从模式中获取值以作为 const 使用
- ios - 设置rootViewController iOS 13
- oracle - Oracle 闪回存档和 ORA-08181:指定的编号不是有效的系统更改编号
- ruby - Ruby Broken pipe @ io_write -
- java - 由数字文字后缀的 DateTimeFormatter 模式仅在模式中存在空格时才有效
- android - 如何删除自定义选项卡中的工具栏(android的插件
- python - 我需要找到最高和最低平均工资支付大学
- algorithm - 在线性时间内组合两个二叉搜索树的算法
- c# - 有没有办法在 Windows 窗体应用程序中启动 Ironpython 交互式窗口
- c++ - OpenGL我有一个显示原始的简单小行星,但尝试循环显示4个小行星,如图像但不工作