mdsk.net
当前位置:首页 >> mAtlAB 怎么判断一个矩阵里是否有重复元素 >>

mAtlAB 怎么判断一个矩阵里是否有重复元素

编码如下:% 设定一个矩阵% A = randn(2, 3); % A是数字矩阵A = { 1, '2', 3; % A是cell型矩阵 'abc', '8', 1 };% 若A为cell型矩阵,将cell型矩阵的所有元素均转换为字符型if isequal(class(A), 'cell') for i = 1 : numel(A) A{i} = char(A{i}); endendflag =

我不知道你的意思是不是判断一个矩阵中是否存在一个元素值为某个数.如果是这样可以用any函数,即下列语句any(x==a).如果x中有一个或多个数值为a,则返回1,否则返回0.

A=randi(500,10);%数据矩阵,这里用随机的,换你自己的数据 [a b]=meshgrid(1:numel(A)); B=find(sum(A(a)==A(b))>1); [i j]=ind2sub(size(A),B'); disp([i j]);

用函数 ismember,来判断是否为B中的元素

给定某个数,matlab中怎么判别一个矩阵中的元素是否不大于该数,那么一种简便可行的做法是先找到矩阵中最大的元素值,再与给定的数比较即可判断.例如给定11,矩阵A如下,>> A=[1 2 3;3 2 5;3 6 9]A =1 2 33 2 53 6 9求出矩阵A的最大值,>> max(A(:))ans =9将11与最大值9进行比较,容易看出11大于9,那么矩阵A中的元素不大于11.

我稍作修改,假设是有三列相同的,3,8,9 p{1,1}=[9 7];p{1,2}=[5 3];p{1,3}=[9 8];p{1,4}=[3 1];p{1,5}=[2 3]; p{1,6}=[2 7];p{1,7}=[9 9];p{1,8}=[9 8];p{1,9}=[9 8];p{1,10}=[3 10]; n=0; for k=1:length(p)-1 for h=k+1:length(p) if isequal(p{1,k},p{1,h})==1 n=n+1;

b=[1,2,3;2,3,4];a=tabulate(b(:))第一列是所有b中出现的元素,第二列是出现次数,第三列是出现频率.你只要取第二列不是1的元素再用find寻找其位置即可.

如果只是判断是否有相同的程序:矩阵A,转为一维A(:),排序 B = sort(A),然后矩阵C = B[i]-B[i+1](注:这里是错位相减,控制i),然后找C中有没有 0 就行了.

1、如楼上所说,高维矩阵是个解决方法,不过和你说的要求略有不一样 另外就是用元胞数组,例如 a = cell(5,5);a{1,1} = eye(4); 这样a是5*5的元胞数组,其中第一行第一列为4*4的单位阵,对于a的其他元素同样可以定义为矩阵2、这样的矩阵不能直接运算,里面的元素可以

用ismember>> A = magic(3)A = 8 1 6 3 5 7 4 9 2>> ismember(6,A)ans = 1

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com