热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

matlab筛选矩阵列,【转载】[Matlab]在矩阵中寻找满足条件的元素

参见张志涌精通matlabArandn(3,4)A-0.58830.1139-0.0956-1.33622.18321.0668-0.83230.7143-0.13640.05

参见张志涌精通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一个思路)

victory.gif

%% 矩阵中寻找向量

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:页,以此类推



推荐阅读
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • IB 物理真题解析:比潜热、理想气体的应用
    本文是对2017年IB物理试卷paper 2中一道涉及比潜热、理想气体和功率的大题进行解析。题目涉及液氧蒸发成氧气的过程,讲解了液氧和氧气分子的结构以及蒸发后分子之间的作用力变化。同时,文章也给出了解题技巧,建议根据得分点的数量来合理分配答题时间。最后,文章提供了答案解析,标注了每个得分点的位置。 ... [详细]
  • 判断数组是否全为0_连续子数组的最大和的解题思路及代码方法一_动态规划
    本文介绍了判断数组是否全为0以及求解连续子数组的最大和的解题思路及代码方法一,即动态规划。通过动态规划的方法,可以找出连续子数组的最大和,具体思路是尽量选择正数的部分,遇到负数则不选择进去,遇到正数则保留并继续考察。本文给出了状态定义和状态转移方程,并提供了具体的代码实现。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 《树莓派开发实战(第2版)》——2.2 创建模型和运行推理:重回Hello World
    本节书摘来异步社区《概率编程实战》一书中的第2章,第2.2节,作者:【美】AviPfeffer(艾维费弗)&# ... [详细]
author-avatar
手机用户2502904233
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有