matlab取矩阵满足条件,[MATLAB]矩阵中寻找满足条件的元素
参见张志涌精通matlab
>> A=randn(3,4)
A =
-0.5883
0.1139
-0.0956
-1.3362
2.1832
1.0668
-0.8323
0.7143
-0.1364
0.0593
0.2944
1.6236
以逻辑数组表达满足条件的元素:
>>L=(A>0)
L =
0
1
0
0
1
1
0
1
0
1
1
1
%寻找符合条件元素位置(返回为一列,并以单下标形式表示位置,故转置为一行)
>>s=(find(L))'或者
>>
s=(find(A>0))'
s =
2
4
5
6
9
11 12
可以对满足条件的元素集体赋值
>> A(s)=0
A =
-0.5883
0
-0.0956
-1.3362
0
0
-0.8323
0
-0.1364
0
0
0
如果要以双下标形式返回符合条件的元素位置:
>> [ii,jj]=find(A==0);
>>
disp(ii'),disp(jj')
2
1
2
3
3
2
3
1
2
2
2
3
4
4
最后,与arrayfun综合运用的一个例子,问题见于simwe forum,想了下可以采用下面的两种方式来完成:
请问如何查找矩阵中相同向量的位置?
比如矩阵A=【1,2,3,1;
2,3,4,2;
3,3,8,3】
向量为b =【1;2;3】
如何能不用循环找出b在A矩阵列中的位置,loc=【1
4】呢?方法一:A=[1,2,3,1;2,3,4,2;3,3,8,3];B=[1;2;3];C=find((ismember(A',B','rows'))');方法二:A=[1,2,3,1;2,3,4,2;3,3,8,3]B=[1;2;3];[M,N]=size(A);N=1:N;P=find(arrayfun(@(n)
isequal(A(:,n),B),N));
版上回复的其它方法:
方法1:find(all(bsxfun(@eq,A,B)))方法2:find(arrayfun(@(n)
all(A(:,n)==B),1:4))方法3: find(all(~bsxfun(@minus,A,B)))方法4:
find(arrayfun(@(n) isequal(A(:,n),B)
,1:4))方法5:find(B'*A==sum(B.^2))
bsxfun和arrayfun函数非常有用,建议楼主参考帮助文档了解其用法。方法5是用了点数学方法,有时候我们多分析下问题会得到意想不到的结果。
也可以不那么复杂,我只会些简单的函数命令(其实和你的方法3一个思路)
%% 矩阵中寻找向量
clc
clear all
A=[1 2 3;1 2 3;2 3 4;3 4 5]'
B=repmat([1:3]',1,4)
D=find(~all(B-A,1))
%B = all(A, dim) tests along the dimension of A specified by
scalar dim.
%dim=1:每一列都为非0,该列取1,否则取0,缺省;dim=2:行;dim=3:页,以此类推
matlab取矩阵满足条件,[MATLAB]矩阵中寻找满足条件的元素相关推荐
- excil mysql查询 条件_excel多条件查找 Excel中实现多条件查找的15种方法
excel多条件查找 Excel中实现多条件查找的15种方法,平凡的世界平凡的你,努力学习使我们变得不平凡,今天要介绍的知识是excel多条件查找的相关知识,你准备好学习excel多条件查找 Exce ...
- matlab筛选矩阵列,【转载】[Matlab]在矩阵中寻找满足条件的元素
参见张志涌精通matlab >> A=randn(3,4) A = -0.5883 0.1139 -0.0956 -1.3362 2.1832 1.0668 -0. ...
- matlab取中间的几位数,Excel中取前几位数、中间几位数、后几位数的方法
在Excel中,我们可能会遇到取一组数据前几位数,中间几位数,或者后几位数的问题,这该怎么办呢?今天就教大家在Excel中用left.mid.right函数分别取出前几位数.中间几位数和后几位数的方法 ...
- excel按条件查询mysql_Excel中实现多条件查找的15种方法
如下图所示,根据第9行的产品和型号,从上面表中查找"销售数量",结果如C10所示 1.SUM函数 公式{=SUM((A2:A6=A9)*(B2:B6=B9)*C2:C6)} 公式简 ...
- python中多条件语句_Python中的带条件语句
所以我编写了这段代码:它的调用方式如下: with c_with(needs_with(), lambda: get_stuff()) as gs: ##DOESN't call get_stuff( ...
- [LeetCode题解]从两个有序数组的并集中寻找第k小元素
Given two sorted arrays A, B of size m and n respectively. Find the k-th smallest element in the uni ...
- python同时满足两个条件_python算法-快速寻找满足条件的两个数
题目前提是一定存在这样两个数 解法一就不写了...一般想不到吧 一开始想到的是解法二最后的用hash表 (其实是想到创建一个跟target一样大的数组啦..存在就写入index,但是要全部找出,那得二 ...
- LeetCode 378. 有序矩阵中第K小的元素(二分查找)
文章目录 1. 题目 2. 解题 2.1 暴力法 2.2 二分查找 1. 题目 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素. 请注意,它是排序后的第k小元素,而 ...
- 【Groovy】集合遍历 ( 使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 | 代码示例 )
文章目录 一.使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 1.闭包中使用 == 作为 findAll 方法的查找匹配条件 2.闭包中使用 is 作为 findAll 方法的查找匹 ...
最新文章
- HDU 2717 Catch That Cow(BFS)
- ubuntu16配置ZooKeeper集群(这里用的是Zookeeper3.4.10)
- Java文件字节流和字符流FileInputStream,FileOutputStream,FileReader,FileWriter
- svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
- java util包类_java.util包下的类及常用方法
- opensource项目_最佳Opensource.com:教育
- 试题4 基础练习 闰年判断
- C++之安装boost库
- Linux系统编程二:字符设备控制之点亮LED灯、控制蜂鸣器
- cadence PCB走等长线设置
- HTML怎么让左边占满整个竖屏,关于移动端页面强制竖屏
- UG自定义工程图模板(一)
- 视频处理及MAX7456的图文解释
- Mozilla 考虑从 Firefox 剥离 XUL 和 XBL
- 手机 9006 端口 不断的闪掉
- JavaGUI——Java图形用户界面
- 萌妹子Python入门指北(二)
- 程序员的自我修养 --- 热爱、分享与梦(本人简历及开源社区贡献)
- 十六进制(二进制)编辑器
- 国自然申请,这些行为可能会引发学术不端
热门文章
- 统信软件:第一份收入破亿的答卷
- 插件.ignore的使用
- shell 判断网线插拔_shell脚本自动检测网络掉线和自动重连
- 用Prophet预测USDCNY走势--------仿照forecasting-stock-perfomance-with-prophet对美元人民币走势进行预测
- 软件实训-用例图2.0 + 简单用例描述
- 游戏推广免费的cps模式和游戏加盟平台选择的一个误区。
- Centos 安装 KVM虚拟化工具 超云服务器 VMware
- (47)【漏洞发现】漏扫工具合集、WAF绕过分类
- macbook修改账户名称
- QQ侧滑菜单的实现和拓展-DrawerLayout