怎么用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的元素,并返回元素下标与元素值 展开
X=[3,2,6;3,7,2,8,9,13];
怎样查找矩阵中大于3,小于12的元素,并返回元素下标与元素值 展开
3个回答
展开全部
找下标:ind = find(X>3&X<12)
ind =
3 5 7 8
相应的值 X(ind)
ans =
6 7 8 9
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)
即可。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我勒个搽 你循环下 当大于3,小于12时把当前坐标返回不就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
find(X>3&X<12)
参考资料: fi
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询