Matlab 如何在向量中找到特定值的索引?

Matlab 如何在向量中找到特定值的索引?,matlab,Matlab,我有一个100*20的矩阵称为pr(在我的例子中是功率接收),100表示用户数和20个天线数每个用户从20个天线接收一定的功率(多个用户可以从同一天线接收功率)。 然后我找到每个用户接收到的最大功率,如果这个最大值大于(-112)计数器的值增加,则将其放入一个100*1的向量中。我需要创建新的向量20*1,其中20是天线数,并计算每个天线接收功率大于(-112)的用户数 [master_ant,id]=max(pr,[],2); %find vector of max values and ve

我有一个100*20的矩阵称为pr(在我的例子中是功率接收),100表示用户数和20个天线数每个用户从20个天线接收一定的功率(多个用户可以从同一天线接收功率)。 然后我找到每个用户接收到的最大功率,如果这个最大值大于(-112)计数器的值增加,则将其放入一个100*1的向量中。我需要创建新的向量20*1,其中20是天线数,并计算每个天线接收功率大于(-112)的用户数

[master_ant,id]=max(pr,[],2); %find vector of max values and vector of the corresponding index
  for i=1:100
if(master_ant(i)>=-112) %check the rang
    covered_user=covered_user+1;%counter increment
end
end
我试过这个

[master_ant,id]=max(pr,[],2);
  for i=1:100
if(master_ant(i)>=-112)
    covered_user(id)=covered_user(id)+1;

最简单的方法是考虑另一种方法。函数
sum
,实际上可以(并且应该)为您完成所有工作

a = randi([-130, -60],100,20); % Example matrix
covered_user = sum(a>=-112); % One-liner solution

最简单的方法是考虑另一种方法。函数
sum
,实际上可以(并且应该)为您完成所有工作

a = randi([-130, -60],100,20); % Example matrix
covered_user = sum(a>=-112); % One-liner solution

这有点难理解。你能举一个小向量的例子吗?15x1,你需要一个有5个值的向量还是什么?到底是什么不起作用?另外,您的代码是相同的(除了缺少的
结尾
。当您回答我的评论时,我将回答另一点,但现在:您的代码可以简化为:
[master\u ant,id]=max(pr,[],2);covered\u user=sum(master\u ant>=-112)
covered\u user=numel(find(master\u ant>=-112))
但它可能比@StewieGriffin的answermax索引3 2更糟糕4.2我需要说的是,索引2有三个值。我仍然无法准确理解您想要的内容。如果您添加一个完整的示例就好了。使用输入
pr
,以及所需的输出/outpu请更新问题,不要在评论中放太多信息。=)这有点难理解。你能举一个小向量的例子吗?15x1,你需要一个有5个值的向量还是什么?到底是什么不起作用?另外,您的代码是相同的(除了缺少的
结尾
。当您回答我的评论时,我将回答另一点,但现在:您的代码可以简化为:
[master\u ant,id]=max(pr,[],2);covered\u user=sum(master\u ant>=-112)
covered\u user=numel(find(master\u ant>=-112))
但它可能比@StewieGriffin的answermax索引3 2更糟糕4.2我需要说的是,索引2有三个值。我仍然无法准确理解您想要的内容。如果您添加一个完整的示例就好了。使用输入
pr
,以及所需的输出/outputs.请更新问题,不要在评论中添加太多信息。=)