找出数字在数组中的位置

31次观看(过去30天)
马可广场
马可广场 2022年9月30日10:51
编辑: 埃尔Sezgin 2022年9月30日14:30
大家好,我正在寻找数组中一些值的位置。我感兴趣的值是一个1x182向量,我想找到他们在1x1820向量中的位置(实际上我只是在寻找一个百分位数)。你能猜到我怎么找到他们吗?
PS:我用一个for循环使用查找函数,但我认为这是一个低效的方法,必须有一个更简单和快速的方法!
先谢谢你,
马可

答案(3)

沃尔特·罗伯森
沃尔特·罗伯森 2022年9月30日10:56
percent_present = mean(ismember(SmallVector, LargeVector)) * 100

明星黾
明星黾 2022年9月30日10:56
我不太清楚你在问什么。
也许使用 ismember (或 ismembertol 函数会做你想做的事情。
2的评论
明星黾
明星黾 2022年9月30日11:17
获取它们很简单。把它们按正确的顺序排列需要一些编码练习
A = [4 5 7 2 1 6 3 9 8];
B = [2 7 8];
[~,idx] = ismember(a, b);
[idx_sorted,sortidx] = sort(idx(idx>0));
Idx2 = find(idx);
结果= idx2(sortidx)
结果= 1×3
4 3 9

登录评论。


埃尔Sezgin
埃尔Sezgin 2022年9月30日14:29
编辑:埃尔Sezgin 2022年9月30日14:30
你好,马克,
以下代码可能有助于完成您的任务:
rng (2022)
inputArray = 100*rand(1,1820);%你应该使用你的数组
selectedElems = randperm(1820,182);%随机索引子集,
yourVector = inputArray(selectedElems);你应该用向量代替
elemPositions =零(大小(yourVector));%已确定位置的结果向量
i = 1:尺寸(yourVector, 2)
elemPositions(1,i) = find(inputArray==yourVector(1,i));
结束
isequal (selectedElems elemPositions)比较实际位置和确定位置。
ans =逻辑
1
祝你好运

标签

2022世界杯八强谁会赢?


释放

R2021a

世界杯预选赛小组名单社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!世界杯预选赛小组名单

开始狩猎!

Baidu
map