使用matlab怎么找出重复率 万方

使用matlab怎么找出重复率 万方

问:matlab 如何筛选一组数中重复的数
  1. 答:a=randint(4,10,[120]);
    u=unique(a);
    m=size(u,1);
    id=1;
    fork=1:m
    [ia,ib,ic]=find(u(k)==a);
    ifsum(ic)>1
    R{id,1}=u(k);
    R{id,2}=[iaib];
    R{id,3}=sum(ic);
    id=id+1;
    end;
    end;
    强大处理
    MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
    以上内容参考:
  2. 答:例如:
    x =
         2     2     6     5
         2     3     2     4
         3     4     3     4
         4     4     4     5
    第一步:找到唯一的.
    X=unique(x);
    X =
         2
         3
         4
         5
         6
    第二步:查找相应位置
    for i=1:length(X)
         [m n]=find(x==X(i));
         if length(m)>=2
    disp(strcat(num2str(X(i)),'重复',num2str(length(m)),'次','位置为:' ,mat2str([m n])))
       end
    end
    结果如下:
  3. 答:a = randint(4,10,[1 20]);
    u = unique(a);
    m = size(u,1);
    id = 1;
    for k = 1:m
    [ia,ib,ic] = find(u(k)==a);
    if sum(ic)>1
    R{id,1} = u(k);
    R{id,2} = [ia ib];
    R{id,3} = sum(ic);
    id = id+1;
    end;
    end;
    R
问:如何用matlab从一列数据中找出重复次数最多的数据?
  1. 答:你用for 循环嵌套if....end 去读这一组数据中的每一个,每读一个数据,针对这个数据做一次计数,下面接着读,如果有和前面读的数据相等的,那么再在前面的计数变量上加1,以此类推直到把所有的数据读完!
    然后你根据各个不同计数变量的大小以及对应的数据,就可以直到那个重复的最多
  2. 答: tabulate函数
    用于统计矩阵中各元素出现的次数
    >> x = [2  2  6  5  2  3  2  4  3  4  3  4  4  4  4  2  2
          6  0  4  7  2  5  8  3  1  3  2  5  3  6  2  3  5
          4  3  1  4  2  2  2  3  1  5  2  6  3  4  1  2  5];
    >> tabulate(x(:))
      Value    Count   Percent
          0        1      1.96%
          1        4      7.84%
          2       14     27.45%
          3       10     19.61%
          4       10     19.61%
          5        6     11.76%
          6        4      7.84%
          7        1      1.96%
          8        1      1.96%
  3. 答:运用tabulate函树,输入以下矩阵即可
    >> x = [2 2 6 5 2 3 2 4 3 4 3 4 4 4 4 2 2
    6 0 4 7 2 5 8 3 1 3 2 5 3 6 2 3 5
    4 3 1 4 2 2 2 3 1 5 2 6 3 4 1 2 5];
    >> tabulate(x(:))
    Value Count Percent
    0 1 1.96%
    1 4 7.84%
    2 14 27.45%
    3 10 19.61%
    4 10 19.61%
    5 6 11.76%
    6 4 7.84%
    7 1 1.96%
    8 1 1.96%
    MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB应用非常之广泛。
  4. 答:a=[1,3,3,5,5,6,2,6,9,9];
    b=unique(a);
    c=histc(a,b);
问:有1500万行数据,如何用matlab统计每行数据出现的次数并将该条数据输出到相应的文件中?
  1. 答:这玩意其实不应该用MATLAB做,用任意一种高级语言比如Python做比较好。
    有两种方案,都是借助hash做
    如果你懂hash map的底层原理可以自己手动实现,数组嵌套,数组的每一个元素是一个链表,数组长度设为2^24,数据存放在数组哪个位置通过hash算法得到,将该数据添加到链表中,一次遍历就可以对数据完成统计,然后相同的数据必定都在同一个链表中,如果链表长度小于10(自己定)就手动判断重复,如果长度过大就再在链表里通过加salt再次统计。
    嫌麻烦就借助hash map,map结构为<string,list>,如果数据未在map中出现,就添加进去,并加到list后,以后都可以直接加到list中,这样实际也是借助hash完成了分类,但list中重复率可能高了点(hash长度为16),这里统计完成了,然后是一样的操作。
使用matlab怎么找出重复率 万方
下载Doc文档

猜你喜欢