怎么在矩阵中挑选符合条件的数据

xiaoxiao2021-02-28  32

如果我有一个32000行,51列的数据,我要从每列中挑选出从1250到1350之间的数据,一列一列的来挑选,每列挑选出来的数据存放到一个新的矩阵中,还是按列存放。而且把挑选出来的数据在原矩阵中的位置表示出来。怎么实现呢?每列在这个范围内的数据可能会不一样多。补充,1250到1350是矩阵中元素的大小范围,不是位置范围

Min = 1250; Max = 1350; ColumnNum = 51; OutputMember = cell(ColumnNum,1); OutputIndex = cell(ColumnNum,1); for i =1:ColumnNum     tmp = Matrix(:,i);% tmp 列向量     index = find((tmp<Max)+(tmp>Min));     SelectedMember = tmp(index);     OutputMember(i) = {SelectedMember};     OutputIndex(i) = {index}; end 要知道符合要求的元素在原始数据矩阵中的位置,符合你要求的数据很好表达,就是(原始矩阵-1250*ones*(32000,51))>0 并且 (原始矩阵-1350*ones*(32000,51))<0,  逻辑值返回1的位置就是你要找的位置。

因为维数不同无法构成矩阵。。而用原包做就解决了这个问题。。 只是要利用这些数据的时候需要用cell2mat(Outputindex(i))并放到另一个变量中来做就行了。。

转载请注明原文地址: https://www.6miu.com/read-1750208.html

最新回复(0)