mdsk.net
当前位置:首页 >> mAtlAB 中如何一个矩阵中查找几个元素的位置,比如... >>

mAtlAB 中如何一个矩阵中查找几个元素的位置,比如...

find这个函数是寻找某个矩阵,例如A,其中满足某个条件的元素的位置.你用find(max(R))时,先计算max(R),这时仅为一个数,无判别条件,当非零时显示1,为零时,是空.你要用find找最小值在数组中的位置:find(R==min(R)) 所以2的位置find(A==2) 5的位置find(A==5)

1、解决代码是:clear all clc x = rand(3, 5) y=rand(3,5) [vx, ix] = max(x); s = 0 : 3 : 12; % 3 is the row number, 6 is the 3 * 5 - 3 result=y(ix + s)2、代码解析:通过rand产生max矩阵,0:3:12的操作就可以将max矩阵中的元素找出来.

x=[100 97 96 94 92 92 92 92 91 91 90 90 89 89 89 88 87 86 86 84 84 84 83 79 79 77 76]; t = find(x == 92) 即可实现

对应位置相同用A(A==B) 位置不考虑用intersect(A(:),B(:))

举个例子,如果需要将A矩阵中大于小于b的元素置零,那么在matlab中可以这么输入:方法一:A(find(A>a&A方法二:A(A>a&A实例:找出3*3的随机矩阵A中在(0.3,0.7)范围内的元素.

首先一点要说明的是,在matlab中,矩阵中的元素序号是按照“先行后列”的顺序排列的.设如下随机矩阵:A=rand(4,6) A =0.6551 0.9597 0.7513 0.8909 0.1493 0.81430.1626 0.3404 0.2551 0.9593 0.2575 0.24350.1190 0.5853 0.5060 0.5472

首先你的跑完之后,B的17列后不是为零,只是很小的数,你可以if一下让它为零 直接用find函数 比方 ans=find(B==0); ans就是B=0的下标了

没有

C = accumarray(A,(1:length(A))',[],@(x){x});C{1}C{2}C{3}就是你要的结果. 查看原帖>>

可以用随机数发生器 :) 具体如下:data=randn(1000,1); %需要随机提取数据的矩阵 randnum=randperm(length(data)); %随机产生矩阵位置 outdata=data(randnum(1:100)); %可随机从data中提取100个数据 以上供楼主参考 :)

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com