一起来学演化计算-matlab基本函数randn, rand, orth

觉得有用的话,欢迎一起讨论相互学习~Follow Me

randn

X = randn

  • 随机从正态分布中选一个数作为结果

X = randn(n)

  • 随机从正态分布中选n*n个数组成一个(n,n)的正方形矩阵
  1. r = randn(5)
  2. r =
  3. 0.5377 -1.3077 -1.3499 -0.2050 0.6715
  4. 1.8339 -0.4336 3.0349 -0.1241 -1.2075
  5. -2.2588 0.3426 0.7254 1.4897 0.7172
  6. 0.8622 3.5784 -0.0631 1.4090 1.6302
  7. 0.3188 2.7694 0.7147 1.4172 0.4889

X = randn(sz1,...,szN)

  • 从正态分布中随机数形成(sz1,...,szN)形状的矩阵
  1. r = randn(1,5)
  2. r =
  3. 0.5377 1.8339 -2.2588 0.8622 0.3188

rand

  • 均匀分布随机数

语法

  • X = rand 返回区间(0,1)内的一个均匀分布的随机数。
  • X = rand(n) 返回一个n×n的随机数矩阵。
  • X = rand(sz1,...,szN) 返回一个sz1-by-…-by-szN随机数数组,其中sz1,…,szN表示每个维度的大小。例如,rand(3,4)返回一个3×4矩阵。
  • X = rand(sz) 返回一个随机数数组,其中大小向量sz指定数组size。例如,rand([3 4])返回一个3×4矩阵。
  • X = rand( ___ ,typename ) 返回数据类型typename的随机数数组。typename输入可以是'single'或'double'。您可以使用前面语法中的任何输入参数。
  • X = rand( ___ ,'like',p) 返回一个随机数字数组,如p;也就是说,与p具有相同的对象类型。您可以指定typename或“like”,但不能同时指定两者。

语法

随机数矩阵

生成一个由0到1之间的均匀分布随机数组成的5×5矩阵

  1. r = rand(5)
  2. r =
  3. 0.8147 0.0975 0.1576 0.1419 0.6557
  4. 0.9058 0.2785 0.9706 0.4218 0.0357
  5. 0.1270 0.5469 0.9572 0.9157 0.8491
  6. 0.9134 0.9575 0.4854 0.7922 0.9340
  7. 0.6324 0.9649 0.8003 0.9595 0.6787

指定区间内的随机数

在区间(-5,5)内生成一个10×1的均匀分布数列向量

  1. r = -5 + (5+5)*rand(10,1)
  2. r =
  3. 3.1472
  4. 4.0579
  5. -3.7301
  6. 4.1338
  7. 1.3236
  8. -4.0246
  9. -2.2150
  10. 0.4688
  11. 4.5751
  12. 4.6489

一般情况下,你可以在(a,b)区间内生成N个随机数,公式为\(r = a + (b-a).*rand(N,1)\)

满足均匀分布的随机整数

使用randi函数(而不是rand)从10到50之间的均匀分布生成5个随机整数

  1. r = randi([10 50],1,5)
  2. r =
  3. 43 47 15 47 35

随机复数

在区间(0,1)中生成一个包含实部和虚部的随机复数

  1. a = rand + 1i*rand
  2. a =
  3. 0.8147 + 0.9058i

复位随机数种子

保存随机数生成器的当前状态,并创建一个1×5的随机数向量

  1. s = rng;
  2. r = rand(1,5)
  3. r =
  4. 0.8147 0.9058 0.1270 0.9134 0.6324
  5. % 将随机数生成器的状态恢复为s,然后创建一个新的1×5的随机数向量。值与之前相同
  6. rng(s);
  7. r1 = rand(1,5)
  8. r1 =
  9. 0.8147 0.9058 0.1270 0.9134 0.6324

3维随机数组

创建一个3×2×3的随机数数组

  1. X = rand([3,2,3])
  2. X(:,:,1) =
  3. 0.8147 0.9134
  4. 0.9058 0.6324
  5. 0.1270 0.0975
  6. X(:,:,2) =
  7. 0.2785 0.9649
  8. 0.5469 0.1576
  9. 0.9575 0.9706
  10. X(:,:,3) =
  11. 0.9572 0.1419
  12. 0.4854 0.4218
  13. 0.8003 0.9157

指定随机数的数据类型

创建一个1×4的随机数字向量,其元素都是单精度的

  1. r = rand(1,4,'single')
  2. r =
  3. 0.8147 0.9058 0.1270 0.9134
  4. class(r)
  5. ans =
  6. single

克隆已有矩阵的形状

创建与现有数组大小相同的随机数矩阵

  1. A = [3 2; -2 1];
  2. sz = size(A);
  3. X = rand(sz)
  4. X =
  5. 0.8147 0.1270
  6. 0.9058 0.9134
  7. X = rand(size(A));

从现有数组克隆大小和数据类型

创建一个2×2矩阵的单精度随机数

  1. p = single([3 2; -2 1]);
  2. Create an array of random numbers that is the same size and data type as p.
  3. X = rand(size(p),'like',p)
  4. X =
  5. 0.8147 0.1270
  6. 0.9058 0.9134
  7. class(X)
  8. ans =
  9. single

orth

  • 求矩阵的标准正交基(PS:矩阵分析时代离我已经遥远)

    • 不过记得意思好像是,正交矩阵的转置乘以正交矩阵得到的是单位矩阵
  • Q = orth(A)返回A的范围的一组标准正交基。Q的列向量张成了A的范围。Q中的列数等于A的秩。

满秩

  1. % 计算并验证满秩矩阵范围的标准正交基向量。
  2. % 定义一个矩阵并求出秩
  3. A = [1 0 1;-1 -2 0; 0 1 -1];
  4. r = rank(A)
  5. r =
  6. 3
  7. % 由于A是满秩的方阵,orth(A)计算的标准正交基与奇异值分解计算的矩阵U相匹配,[U,S] = svd(A'econ')。这是因为A的奇异值都是非零的。
  8. 利用orth计算A的值域的标准正交基
  9. Q = orth(A)
  10. Q =
  11. -0.1200 -0.8097 0.5744
  12. 0.9018 0.1531 0.4042
  13. -0.4153 0.5665 0.7118
  14. % Q中的列数等于秩(A)因为A是满秩的,QA的大小是一样的。
  15. % 验证基Q是正交的,并且在合理的误差范围内归一化。
  16. E = norm(eye(r)-Q'*Q,'fro')
  17. E =
  18. 9.6228e-16
  19. % Q矩阵的转置和Q相乘后的结果是一个单位矩阵,将其和单位矩阵相减后得到结果误差十分小

matlab基本函数 randn,rand,orth的更多相关文章

  1. matlab中randn(‘state’)

    matlab中randn(‘state’)转载:http://www.cnblogs.com/rong86/p/3572284.html randn('state') 随机数都是由RandStream ...

  2. Matlab基本函数-conj函数

    Matlab基本函数-conj函数 1.conj函数:用于计算复数的共轭值 2.用法说明:y=conj(x)函数计算复数x的共轭值.输出结果y的维数跟输入x的维数一致,返回值为:real(y)-i*i ...

  3. matlab基本函数strcmp num2str 字符串格式

    一起来学演化计算-matlab基本函数strcmp num2str 字符串格式 觉得有用的话,欢迎一起讨论相互学习~Follow Me strcmp 比较字符串 语法 tf = strcmp(s1,s ...

  4. matlab基本函数inf, isempty, round, floor, fix

    一起来学演化计算-matlab基本函数inf, isempty, round, floor ,fix 觉得有用的话,欢迎一起讨论相互学习~Follow Me inf matlab中 inf无穷大量+∞ ...

  5. matlab基本函数randperm end数组索引

    一起来学演化计算-matlab基本函数randperm end数组索引 觉得有用的话,欢迎一起讨论相互学习~Follow Me 随机排列 语法 p = randperm(n) p = randperm ...

  6. matlab基本函数find

    一起来学演化计算-matlab基本函数find 觉得有用的话,欢迎一起讨论相互学习~Follow Me 找到非零元素的索引和值 语法 k = find(X) k = find(X)返回一个向量,其中包 ...

  7. matlab基本函数min

    一起来学演化计算-matlab基本函数min 觉得有用的话,欢迎一起讨论相互学习~Follow Me 找到数组中最小的元素 语法 M = min(A) 返回A的最小元素 如果A是一个向量,那么min( ...

  8. matlab 中randn randi rand randsrc的用法以及区别

    1,rand 生成均匀分布的伪随机数.分布在(0~1)之间 主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数                      rand(m,n,'double') ...

  9. matlab基本函数sort

    一起来学演化计算-matlab基本函数sort 觉得有用的话,欢迎一起讨论相互学习~Follow Me sort 对数组元素排序 语法 B = sort(A) 按照大小不等于1的第一个数组维度对A的元 ...

随机推荐

  1. jquery页面多个倒计时效果

    <div class="timeBox" data-times="2019/06/30,23:59:59"> 距结束 <span class= ...

  2. pycharm注册使用

    先在PyCharm官网下载安装包 链接:https://www.jetbrains.com/pycharm/download/#section=linux 选择平台为Linux,可以看到当前版本为20 ...

  3. Linux 颜色设置

    echo显示带颜色,需要使用参数-e格式如下:echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"例如: echo -e "\033[41;37m T ...

  4. bzoj 5408: string 后缀自动机 + LCT

    联赛前练练码力. code: #include <vector> #include <cstdio> #include <cstring> #include < ...

  5. test命令用法。功能:检查文件和比较值

    test命令用法.功能:检查文件和比较值 1)判断表达式 if test  (表达式为真) if test !表达式为假 test 表达式1 –a 表达式2                  两个表达 ...

  6. Problem 8 dp

    $des$ $sol$ 记 $f_i$ 表示考虑前 $i$ 个建筑, 并且第 $i$ 个建筑的高度不变的答案, 每次转移时枚举上一个不变的建筑编号, 中间的一段一定变成相同的高度, 并且高度小于等于两 ...

  7. Codevs 1500 后缀排序(后缀数组)

    1500 后缀排序 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 天凯是MIT的新生.Prof. HandsomeG给了他一个 ...

  8. [转] Raspberry Pi 樹莓派使用場合及時機

    在買了 Raspberry Pi 後,到底能拿來做什麼事情呢?有幾個想法一起分享   這裡有初學者教學的影片,非常值得一看. http://www.youtube.com/user/Raspberry ...

  9. 整理的Python资料,包含各阶段所需网站、项目,收藏了

    虽然强调过很多次了,但是还是要多提一句,不要看python2.x,如果你是零基础过来的,请直接开始你的py3.x 之路.建议3.6,3.7的一些特性可能对你不是很重要. 1.初出茅庐 我不会推荐你们去 ...

  10. 数据结构实验之排序六:希尔排序 (SDUT 3403)

    其实,感觉好像增量不同的冒泡,希尔排序概念以后补上. #include <bits/stdc++.h> using namespace std; int a[10005]; int b[1 ...