永发信息网

Matlab中,怎样能去除向量或矩阵中的NaN和0元素,但又不改变其它元素的索引值?

答案:1  悬赏:30  手机版
解决时间 2021-05-24 04:05
Matlab中,怎样能去除向量或矩阵中的NaN和0元素,但又不改变其它元素的索引值?
A,B,C同为向量,C = A ./ B; 要求找出C中前100个(向量元素足够多)最大或最小的元素.
我的做法是:将C排序(升序或降序),返回索引:C_index = sort(C);
得到结果:Result = C( C_index(1:100) );
A/B中都有为0的元素,和NaN的元素,怎样能在Result中去除这些元素,得到前100个有含义的数值元素(比如价格),但又不改变A,B中的元素索引值呢?
最佳答案

按照你所说A,B有0元素
所以C有0元素(0除以非0)或者inf元素(非零除以0),或者nan元素(0除以0)
要在排序的时候忽略他们,只要将他们改写为一定排不上前100的数就可以了
要找最大的元素的时候,可以将对应的数改为-inf,那么这些数肯定排在最小
要找最小的元素的时候,可以将对应的数给为inf,那么这些数肯定排在最大
数据足够多的时候,前100个数肯定就没有它们的身影
例如在C中忽略nan,找前100个最大的数
D=C;
D(isnan(D))=-inf;
sD=sort(D,'descend'); %降序排序
Result =sD(1:100);
不用用到索引
要忽略某些值,只要让那些等于哪些值的值变为-inf就可以了
忽略inf:D(isinf(D))=-inf;
忽略0:D(D==0)=-inf;
找最小的时候,将这些值给为inf,用升序排列


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
香坊区哈尔滨博才文化学校(结构街)地址在哪里
肺部积水吃什么好,肺积水、吃什么对身体有好
同学与朋友的关系是怎样的?
鸿鑫批发部雪花啤酒经销点我想知道这个在什么
中午适合运动吗,适宜在中午运动么
禹州市许昌雅丽化妆(一峰店)这个地址怎么能查
初三科学物理如图所示,用滑轮组来拉动物体A,
冒险岛充值卡除了充值游戏还能冲什么
天地劫地图问题
济源市济源艺童天下这个地址在什么地方,我要
《五经》指具体的如:诗经
西平县驻马店西平县畜牧疫苗供应处地址在什么
MP3歌曲放到MP3里面放不了,说是格式错误,怎
金华通讯地址在什么地方,想过去办事
形容不想再争辩的句子,不想去争辩是非的句子
推荐资讯
2009WCG网络哪个平台可以看?
帖子置顶是什么意思
湖滨影楼地址在哪,我要去那里办事
曾都区随州菲常美吧(沿河大道店)地址在哪,我
济源市济源型男淑女烫染造型定制馆怎么去啊,
我不知道这台电脑何时感染了病毒 英文翻译 I
祁阳县永州市祁阳县黎家坪镇代售点地址在什么
大海用英语怎么说
CK到底死了没有啊?
汪家营村地址有知道的么?有点事想过去
便利店加盟费多少,加盟好又多超市要多少钱
北京哪里有批发棒棒糖,波板糖的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?