怎么用matlab查找矩阵满足某个条件的元素

如下:X=[3,2,6;3,7,2,8,9,13];怎样查找矩阵中大于3,小于12的元素,并返回元素下标与元素值... 如下:
X=[3,2,6;3,7,2,8,9,13];
怎样查找矩阵中大于3,小于12的元素,并返回元素下标与元素值
展开
rocwoods
推荐于2017-04-12 · TA获得超过1118个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:212万
展开全部
找下标:ind = find(X>3&X<12)
ind =
3 5 7 8
相应的值 X(ind)
ans =
6 7 8 9
追问
我是这样求的,你帮我看一下问题出在哪个地方了?谢谢了
X=[3,2,6;3,7,2;8,9,13]
[m,n]=find(X>3&X<12)
X(m,n)
追答
必须用线性索引,行列下标索引的话有问题。举一个你容易理解的例子x(1:3,1:3)取的是x第1到3行,第1到3列的3*3矩阵,而不是x(1,1),x(2,2),x(3,3)这三个值。因此你上面X(m,n)是一个范围内的矩阵,而不是你要的大于3小于12的X值。这时候需要用sub2din把[m,n]转成线性索引:
>> ind = sub2ind(size(X),m,n)
ind =
3
5
6
7
>> X(ind)
ans =
8
7
9
6
或者你一开始就:ind = find(X>3&X<12)
如果想得到行列形式的索引:[m,n] = ind2sub(size(X),ind)
即可。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
slhohebeve
2011-11-04 · TA获得超过2052个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:126万
展开全部
我勒个搽 你循环下 当大于3,小于12时把当前坐标返回不就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
霪枪赵子龙
2011-11-04 · 超过17用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:54.1万
展开全部
find(X>3&X<12)

参考资料: fi

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式