精华内容
下载资源
问答
  • MATLAB提供了多种生成随机整数的方法,下面我们就着重介绍几种常用的方法。 方法一:rand() rand()函数常用来生成0-1之间的随机矩阵,那么我们完全也可以用来生成我们想要的任意大小、任意个数的随机整数...

    MATLAB提供了多种生成随机整数的方法,下面我们就着重介绍几种常用的方法。

    • 方法一:rand()

      rand()函数常用来生成0-1之间的随机矩阵,那么我们完全也可以用来生成我们想要的任意大小、任意个数的随机整数。

      1,生成0-5之间的10个随机整数

      在matlab主窗口中输入round(rand(1,10)*5) 回车2,生成1个随机整数,,

      命令  round(rand(1,1)*5)  回车

      3,生成-5-4之间的10个随机整数

      在matlab主窗口中输入   round(rand(1,10)*9)-5  回车

      我们可以看到生成的是在-5到4之间的随机整数!

    • 方法二: randint()

      randint()函数可以生成任意区间任意维数的随机整数矩阵,下面我们就举例验证之.

      1,生成1个5-9之间的随机整数

      在主窗口中输入 randint(1,1,[5 9])回车

      2,生成10个5到20之间的整数

      在主窗口中输入  randint(1,10,[10 20])  回车

      黄色警告的意思是这个函数未来可能会被MATLAB移除,请用rand()函数,当然我们现在不熟悉rand()函数,还可以继续用这个函数。

      3,生成10个-7到15之间的随机整数

      在主窗口中输入  randint(1,10,[-7 15]) 回车

      结论:randint()函数其实是rand()函数的特殊版本,randint()能够生成的所有整数rand()函数都可以做到,不过需要我们自己去手动进行取整以及区间变换操作,randint()函数用起来方便,但是未来有可能这个函数被删除,所有希望大家也多去了解一下rand()函数。

    展开全文
  • MATLAB中randi函数用于产生均匀分布的伪随机整数。 跟上一个博客中介绍的rand的用法区别主要在于第一个入参,此函数的第一个入参表示产生的伪随机整数的最大值。 MATLAB官方介绍链接如下: ...

    MATLAB中randi函数用于产生均匀分布的伪随机整数。

    跟上一个博客中介绍的rand的用法区别主要在于第一个入参,此函数的第一个入参表示产生的伪随机整数的最大值。

    MATLAB官方介绍链接如下:

    https://ww2.mathworks.cn/help/matlab/ref/randi.html

    本人是在创建稀疏矩阵,需要随机填充某行某列的数据,所以用到了此函数

    octave:26> randi(100,1,1)
    ans =  11
    octave:27> randi(100)
    ans =  4
    octave:28> randi(100,1)
    ans =  40
    octave:29> randi(100,2)
    ans =
    
       14    6
       69   68
    
    octave:30> randi([-5,6],2)
    ans =
    
       5  -4
      -1   5

     如果不直接用randi函数,也可以用round+rand

    octave:31> round(rand(2)*4)
    ans =
    
       2   3
       2   3
    
    octave:32> round(rand(2)*4)
    ans =
    
       3   2
       1   2

    采用round+rand可能产生重复的数值,MATLAB中有一个函数randperm可以生成不重复的随机整数值,具体使用方法参考链接:

    https://ww2.mathworks.cn/help/matlab/ref/randperm.html?s_tid=srchtitle

    展开全文
  • matlab生成无重复随机整数的方法 2012-11-23 19:29 35257人阅读 评论(1) 收藏 举报  分类: 编程(28)  Matlab自带函数randperm(n)产生1到n的整数的无重复的随

    http://blog.csdn.net/xiaxiazls/article/details/8217884


    即产生随机排列:
    p = randperm(n) returns
    a random permutation of the integers 1:n.
    所以要产生[16 31]的随机排列,可以执行:
    randperm(31-16+1)+15

    matlab中生成无重复随机整数的方法

     35257人阅读 评论(1) 收藏 举报
     分类:
    Matlab自带函数randperm(n)产生1到n的整数的无重复的随机排列,利用它就可以得到无重复的随机数。例如:


    randperm(n):产生一个1到n的随机顺序。 
    >> randperm(10)
    ans =
         6     4     8     9     3     5     7    10     2     1


    randperm(n)源代码:
    function p = randperm(n);
    %RANDPERM Random permutation.
    % RANDPERM(n) is a random permutation of the integers from 1 to n.
    % For example, RANDPERM(6) might be [2 4 5 6 1 3].
    %
    % Note that RANDPERM calls RAND and therefore changes RAND's state. %
    % See also PERMUTE. % Copyright 1984-2002 The MathWorks, Inc.
    % $Revision: 5.10 $ $Date: 2002/04/09 00:26:14 $
    [ignore,p] = sort(rand(1,n));


    randperm(n)生成无重复整数的原理:


    1. rand(1, n)产生1行n列的0-1之内的随机数矩阵。
    2. sort()把这个矩阵排序,返回的ignore是排序后的序列,p是排序后的序列的各数原来的索引(即位置的编号),这个索引肯定是随机的,而且是在1到n间无重复的整数。


    question:randperm(n)只能产生一个长度为n的且每个数都在1到n之间的随机顺序,我想产生一个长度为m(m<=n)的且每个数都在1到n之间的随机顺序,又该如何呢?


    很简单,可以令p=randperm(n);然后选p的前m个数即可:p(1,m);


    例如:m=3,n=8时
    >> p=randperm(8);
    >> p(1:3)                                                      

    ans = 

     2     1     6

     

    当然也可以把上述两步编程为一个子函数randnorepeat(m,n)
     

    function d=randnorepeat(m,n)
    %生成一列在[1,n]范围内的m个不重复的整数
    p=randperm(n);
    d=p(1:m);
     


    例如:

    >> d=randnorepeat(5,10)
     

    d =
         3     2     5     6    10


    附:《Matlab中的几个随机函数》

    rand

    rand(n):生成0到1之间的n阶随机数方阵

    rand(m,n):生成0到1之间的m×n的随机数矩阵

    randint

    randint(m,n,[1 N]):生成m×n的在1到N之间的随机整数矩阵,randint(m,n,N+1)生成m×n的在0到N之间的随机整数矩阵,注:高版本的matlab中将randint改为randi,使用方法为randint([1 N],m,n)

     

    >> randint(3,4,[1 10])
     

    ans =

         3    10     4    10
         3     3     2     9
         1     3     3     2

    >> randint(3,4,11)
     

    ans =

         4     4     3     2
         9     5     0     9
        10     5     6     6
     


    >> randi([1 10],3,4) 

    ans =                                                           


         8     1     3     7
        10     1     5     9
         7     1     8     3
     


    randperm


    randperm(n):产生一个1到n的随机顺序。 
    >> randperm(5)


    ans =
         4     3     2     5     1
     
    展开全文
  • matlab生成不重复的随机整数

    千次阅读 2018-06-03 15:37:20
    matlab经常需要生成不重复的随机整数;如,存在数组A=【1 2 3;6 7 8;14 17 18】,其对应的标签为B = [1;2;3],当我们打乱数组A的顺序时,数组B的顺序需要同步变化。可以通过生成不成重复的随机整数的方式。randperm...

    matlab经常需要生成不重复的随机整数;

    如,存在数组A=【1 2 3;6 7 8;14 17 18】,其对应的标签为B = [1;2;3],当我们打乱数组A的顺序时,数组B的顺序需要同步变化。可以通过生成不成重复的随机整数的方式。

    randperm(n):产生一个1到n的随机顺序。 

    >>randperm(8)
    ans =
    
         6     3     7     8     5     1     2     4

    展开全文
  • 主要用于矩阵排列顺序打乱,随机生成整数1~n范围内的整数。 matrix = randperm(n)%产生一组1-n的整数 matrix = randperm(n, a)%返回一组1-n范围内的a个整数 例子 >> matrix = randperm(10) matrix = 1 8 ...
  • %生成均匀分布的随机整数,max生成随机整数最大值,生成m行n列的矩阵 编写函数sampling function [x,y,z]=sampling(lowx,upx,lowy,upy,lowz,upz,m,n) %该函数用来产生不重复的随机整数矩阵 %low—随机整数下界;...
  • Matlab自带函数randperm(n)可以产生1到n的整数的无重复的随机排列,利用它就可以得到无重复的随机数。例如: randperm(n):产生一个1到n的随机顺序。 >> randperm(10) ans = 6 4 8 9 3 5 7 10 2 1 利用生产...
  • 1 致谢 感谢网友科比WILL的帮助, 原文链接如下: ...在做作业的时候遇到一个问题,需要生成一个不大于N的随机整数向量,刚开始想到了rand()函数,不过感觉可能应该有更为简单的方法,所以咨询了一下度娘...
  • matlab开发-线性整数整数生成器。演示获取随机位的基本思想
  • 生成随机整数方法

    千次阅读 2014-09-18 14:49:00
    MATLAB 生成随机整数 的各种方法以及实例 MATLAB提供了多种生成随机整数的方法,下面我们就着重介绍几种常用的方法。 方法一:rand() rand()函数常用来生成0-1之间的随机矩阵,那么我们完全也可以用来生成...
  • %该函数用来产生不重复的随机整数矩阵 %low—随机整数下界;up—随机整数上界;m,n—随机矩阵维度 %编写函数时的测试数据 if ~nargin  low=1;  up=100;  m=1;  n=20; end s=[]; t=0; while 1  ...
  • 使用unidrnd(N)函数,具体代码如下: 1 >> unidrnd(5) 2 3 ans = 4 5 2 6 7 >> unidrnd(5) 8 9 ans = 10 11 5 12 13 >> unidrnd(5) 14 ...17 ...
  • 如果要求不能用ceil(rand())函数 间接地生成一定范围内的随机整数,则可以使用以下几种方案: (比如:产生1到7的随机整数) unidrnd(7), %R = unidrnd(N),产生一个最大值为N的随机整数R,R为1到N之间; ...
  • matlab生成随机稀疏数组

    千次阅读 2014-03-14 15:55:17
    函数randi用于生成一定范围内均匀分布的整数 例如:randi([imin imax],m,n)生成m乘以n的...例如:我要产生1000×1的向量,向量中有25个元素随机生成,其他元素为0 clc; clear all; K=25; %稀疏度 N=1000; 
  • 1 >> randperm(5) 2 3 ans = 4 5 1 3 2 4 5 使用randperm(N)函数 转载于:https://www.cnblogs.com/yuzhuwei/p/4104528.html
  • 在编写启发式算法时,经常面临产生随机数的情况...1.matlab生成不重复的随机整数 网址:https://blog.csdn.net/yq_forever/article/details/75093433 使用rand函数生成小数再取整的方法往往会造成数据重复。 ...
  • MATLAB生成随机数方法总结

    万次阅读 2019-03-31 15:41:02
    好久没用MATLAB了,今天在利用MATLAB进行数据...1. randi : 产生均匀分布的伪随机整数 %产生一个1至10之间的随机矩阵,大小为2x5; s1 = randi(10,2,5); %产生一个-5至5之间的随机矩阵,大小为1x10; s2 = ran...
  • MATLAB随机模拟

    2020-05-11 23:48:34
    随机数的产生 常用函数 A=rand(m,n); %生成m*n随机数矩阵,每个元素的选取服从[0,1]上的平均分布 ... %生成m*n随机数矩阵,每个元素是1和nmax之间的随机选取的正整数 D=randi([a,b],m,n); %m*n随机数矩阵,每个元
  • Matlab Coder生成动态数组解析 一、主要代码分成三部分 以自定义函数 myrandi 作为示例,随机产生长度为L,[Min,Max]之间的整数值。 1. 初始化函数 /* Initialize the application. You do not need to do this more...
  • matlab开发-从线性范围生成随机变量。rand_int(r,n)返回一个n乘n矩阵,其中包含范围r中的伪随机整数值。
  • randperm(n) 随机生成从1到n的不重复的整数; 2. randperm(n, k) 随机生成k个在区间 [1, n] 之间的不重复的整数; randi()函数: 功能:用于生成服从均匀分布的伪随机整数,是会重复的; 用法:1. ra...
  • rand(m,n):生成m行n列在 ...randi:生成均匀分布的伪随机整数 randn (m,n):生成m行n列标准正态分布N(0,1) 的伪随机数 小贴士:     要想生成指定范围的均匀分布随机数怎么办?当然是直接乘个系数就OK啊! ...
  • 实例1:生成5个0-4范围的随机整数 >> round(rand(1,5)*4) ans = 3 3 0 2 3 实例2:生成1个0-4范围的随机整数 >> round(rand(1)*4) ans = 4
  • matlab的随机数生成函数 rand 生成均匀分布的伪随机数,分布在0~1之间 randn 生成标准正态分布的伪随机数,均值为0,方差为1 ...randi 生成均匀分布的伪随机整数 randi([iMin,iMax],m,n)在(...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 128
精华内容 51
关键字:

matlab随机生成整数

matlab 订阅