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 =

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]);

用sym定义一个符号矩阵就可以了格式是sym('[]');[]中为系数矩阵

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

a=[1 2 4 4 3 2 4;1 3 4 2 1 2 3]; [m,n]=size(a); b=unique(a);//去除a中相同的元素 if length(b)~=m*n for i=1:length(b) disp('相同的元素') disp(b(i)) t=a==b(i) end else disp('无相同的元素') end

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

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

既可以用数组名跟圆括号,行号,列号表示,又可以用一个参数表示.注意一个参数表示时,matlab是列优先的,千万别弄错.例如:a=[1,2,3;4,5,6;7,8,9];则a(2,1)=4.千万别写成a[2,1]!如果用一维表示是:a(2)=4,千万别写成a(4)!不信你可以上机试试.

matlab里关于集合运算和二进制数的运算的函数 intersect:集合交集 ismember :是否集合中元素 setdiff :集合差集 setxor :集合异或(不在交集中的元素) union :两个集合的并 unique :返回向量作为一个集合所有元素(去掉相同元素)

使用find命令即可,前提是两个矩阵的维度要相同 下面是一个例子:clc;clear; a = 1:10; b = [ 1:4, 7,6,5, 8:10]; e = find( a == b ); a(e)结果为:ans = 1 2 3 4 6 8 9 10

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