怎么用matlab查找矩阵满足某个条件的元素
答案:3 悬赏:70 手机版
解决时间 2021-01-07 11:39
- 提问者网友:半生酒醒
- 2021-01-06 16:54
怎么用matlab查找矩阵满足某个条件的元素
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-01-06 18:10
找下标: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)
即可。
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)
即可。
全部回答
- 1楼网友:等灯
- 2021-01-06 20:26
find(X>3&X<12)
参考资料:fi
- 2楼网友:持酒劝斜阳
- 2021-01-06 18:56
我勒个搽 你循环下 当大于3,小于12时把当前坐标返回不就好了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯