|
|
1
13
试试这个衬垫(在哪 一 是你的交集矩阵和 乙 是要删除的值):
然后对每一个新的重复最后一行 乙 您要删除。 编辑: …还有另一个选择:
警告: 这里的答案最适用于不期望出现小的浮点错误的情况(即使用整数值)。如本文所述 follow-up question ,使用“==”和“~=”运算符可能导致不需要的结果。在这种情况下,应修改上述选项以使用关系运算符而不是相等运算符。例如,我添加的第二个选项将更改为:
快抬头!=) 一些基本的时间安排: 以防有人 真的? 对于效率感兴趣,我只做了三种不同的方法来获得矩阵的子索引(上面列出的两个选项和 Fanfan's strmatch选项):
如您所见,strmatch选项比我的第一个建议快,但我的第二个建议是这三个建议中最快的。但是请注意,我的选项和fanfan的操作略有不同:我的选项将行的逻辑索引返回到 保持 和fanfan的返回行的线性索引 去除 . 这就是strmatch选项使用表单的原因:
当我使用以下形式时:
但是,使用第一个表单(将行索引到 去除 ):
|
|
|
2
7
这里的简单解决方案是寻找设置成员函数,即setdiff、union和ismember。
看看ismember对这两个数组做了什么。使用“行”选项。
因为我们希望删除B中的A行,所以只需执行以下操作:
请注意,集合成员函数寻找完全匹配的值。整数或1/2的倍数,如满足该要求的整数或倍数。它们在matlab的浮点运算中得到了精确的表示。 如果这些数字是真正的浮点数,我会更加小心。在那里,我可以容忍这种差异。在这种情况下,我可能已经计算了两组数字之间的点间距离矩阵,仅当A行落在B行之一的给定距离内时,才删除A行。 |
|
|
3
5
您还可以滥用strmatch函数来满足您的需要:以下代码删除了矩阵A中给定行B的所有出现
如果需要删除多行(如矩阵B中的所有行),请对它们进行迭代:
|
|
|
4
0
不确定何时引入此功能(使用2012b),但您只需执行以下操作:
基于:
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Max · 用两列中的特定值对识别R中的数据帧行 1 年前 |
|
RobertF · 如何将函数应用于矩阵的每个元素? 1 年前 |
|
|
Landers · 将矩阵转换为包含所有值的列表 1 年前 |
|
|
P_B · 如何从矩阵中减去均值向量 1 年前 |
|
|
Rotacional · 获取矩阵中的方向元素 1 年前 |
|
ImRobb · 为什么int**m不等于int m[][]?[关闭] 1 年前 |