查看: 263|回复: 2|关注: 0

[已解决] 用matlab找到数据中不等于0的最小数的索引??

[复制链接]

新手

16 麦片

财富积分


050


11

主题

39

帖子

1

最佳答案
a是一个向量,找到里面不为零的最小值的位置??
不能用[~,ind]=min(a(a~=0)),这样会把0剔除掉,索引就不对了
虽然[row,col]=find(a==min(a(a~=0)))可以解决问题,但是有没有更简单的方法?
回复主题 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

681 麦片

财富积分


5001500


26

主题

362

帖子

78

最佳答案
  • 关注者: 11
发表于 2020-7-28 18:12:27 | 显示全部楼层 |此回复为最佳答案
可以采用,将为0的值赋值为a中最大的值,然后直接求最小值即可。
  1. a=randi([1,10],100,1)-1;

  2. b=a;
  3. b(b==0)=max(b);  %将0替换成a中最大值;那么直接求最小值即可。
  4. [~,ind]=min(b);
复制代码
回复此楼 已获打赏: 0 积分

举报

新手

16 麦片

财富积分


050


11

主题

39

帖子

1

最佳答案
 楼主| 发表于 2020-7-28 19:49:20 | 显示全部楼层
15631202458 发表于 2020-7-28 18:12
可以采用,将为0的值赋值为a中最大的值,然后直接求最小值即可。

感谢帮助,我已经在找到方法了,因为可以确定每行只有一个零,所以用了mink
  1. [~,ind]=mink(A,2);
  2. index=ind(end);
复制代码

你的方法比较通用,我这个只针对我的特例
:lol
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表