matlab - 返回两个大小不等的数组匹配的索引
问题描述
我有两个具有匹配数字的列数组 x 和 y,但是 y 中的前几个数字丢失了。如何索引 x 中缺少数字的行?
例如,如果我有
x = [1,5,6,5,8,8,10]'
y = [6,5,8,8,10]'
它应该返回:
z = 0,0,1,1,1,1,1
(其中 z 与 x 大小相同)
解决方案
如果数组仅在开头缺少数字,则可以使用NaN
(非数字)术语来填充数组。在将数组填充到相等大小之后,可以分别对相应的索引/元素进行比较操作。简而言之,这将填充数组,然后检查相应的元素是否匹配。
x = [1,5,6,5,8,8,10]';
y = [6,5,8,8,10]';
Length_Difference = length(x) - length(y);
Padding_Vector = NaN(1,Length_Difference).';
y = [Padding_Vector; y];
Matches = (x == y);
Matches.'
但是,如果您只是想查看使用中x
存在的各个元素是否可以解决问题。要检查相反的情况,请使用.y
ismember()
ismember(y,x)
Matches = ismember(x,y);
Matches.'
使用 MATLAB R2019b 运行
推荐阅读
- python-3.x - Anki 插件开发:创建编辑器按钮时出错
- architecture - 是否有理由在 Blazor 服务器端使用 ViewModel?
- google-api-nodejs-client - 如何获取 google api 服务帐户的客户端密码
- python - 我可以做些什么来减少从 Python 脚本创建的 .exe 的文件大小?
- python - django admin上的未知列错误,如何解决?
- c# - 多个子 c# 上的反序列化 xml
- rest - Mockito 单元测试:无法测试 REST 资源 - RESTEASY003135:必须使用 @Path 注释类才能调用路径(类)
- java - 将表名外化为 yml | 弹簧靴
- python-3.x - Selenium 错误:StaleElementReferenceException
- mysql - “ER_UNKNOWN_TABLE:字段列表中的未知表‘产品’”