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

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

randn

X = randn

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

X = randn(n)

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

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

  • 从正态分布中随机数形成(sz1,...,szN)形状的矩阵
r = randn(1,5)
r = 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矩阵

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

指定区间内的随机数

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

r = -5 + (5+5)*rand(10,1)
r = 3.1472
4.0579
-3.7301
4.1338
1.3236
-4.0246
-2.2150
0.4688
4.5751
4.6489

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

满足均匀分布的随机整数

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

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

随机复数

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

a = rand + 1i*rand
a = 0.8147 + 0.9058i

复位随机数种子

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

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

3维随机数组

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

X = rand([3,2,3])
X(:,:,1) = 0.8147 0.9134
0.9058 0.6324
0.1270 0.0975 X(:,:,2) = 0.2785 0.9649
0.5469 0.1576
0.9575 0.9706 X(:,:,3) = 0.9572 0.1419
0.4854 0.4218
0.8003 0.9157

指定随机数的数据类型

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

r = rand(1,4,'single')
r = 0.8147 0.9058 0.1270 0.9134 class(r)
ans = single

克隆已有矩阵的形状

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

A = [3 2; -2 1];
sz = size(A);
X = rand(sz)
X = 0.8147 0.1270
0.9058 0.9134 或 X = rand(size(A));

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

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

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

orth

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

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

满秩

% 计算并验证满秩矩阵范围的标准正交基向量。

% 定义一个矩阵并求出秩

A = [1 0 1;-1 -2 0; 0 1 -1];
r = rank(A)
r = 3 % 由于A是满秩的方阵,orth(A)计算的标准正交基与奇异值分解计算的矩阵U相匹配,[U,S] = svd(A,'econ')。这是因为A的奇异值都是非零的。 利用orth计算A的值域的标准正交基 Q = orth(A)
Q = -0.1200 -0.8097 0.5744
0.9018 0.1531 0.4042
-0.4153 0.5665 0.7118 % Q中的列数等于秩(A)因为A是满秩的,Q和A的大小是一样的。
% 验证基Q是正交的,并且在合理的误差范围内归一化。 E = norm(eye(r)-Q'*Q,'fro')
E = 9.6228e-16 % 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. workerman——消息推送(web-msg-send)

    前言 说下场景,当后台将号码池的号码分配给指定客服的时候,需要给指定的客户推送一条消息告诉该客户,通讯录有新增数据. 步骤 下载 https://www.workerman.net/web-sende ...

  2. 五.Protobuf3 枚举

    Protobuf3 枚举 定义消息类型时,您可能希望它的一个字段有一个预定义的值列表.例如,假设您希望为每个SearchRequest添加一个corpus字段,其中语料库可以是UNIVERSAL.WE ...

  3. dedecms列表页使用noflag

    最近小编使用dedecms遇到列表页需要使用noflag,在网上找了一圈都是直接替换代码,试用了一下并不能解决问题. 以下是小编自己根据资料整理的...多说一句由于各个编辑器打开的方式可能代码不在这一 ...

  4. php 文件包含函数

    在实际开发中,常常需要把程序中的公用代码放到一个文件中,使用这些代码的文件只需要包含这个文件即可.这种方法有助于提高代码的重用性,给代码的编写与维护带来很大的便利.在PHP中, 有require.re ...

  5. URLSearchParams对象

    URLSearchParams对象用于处理URL中查询字符串,即?之后的部分. 1.语法 其实例对象的用法和Set数据结构类似.实例对象本身是可遍历对象.但是不是遍历器. var paramsStri ...

  6. (尚009)Vue列表渲染

    变异方法:说白了就是对原方法进行了包装,包装后实现了2个功能1:实现原方法的功能;2.更新界面. 1.test009.html <!DOCTYPE html><html lang=& ...

  7. USACO10FEB]慢下来Slowing down dfs序 线段树

    [USACO10FEB]慢下来Slowing down 题面 洛谷P2982 本来想写树剖来着 暴力数据结构直接模拟,每头牛回到自己的农场后,其子树下的所有牛回到农舍时,必定会经过此牛舍,即:每头牛回 ...

  8. 过拟合和欠拟合(Over fitting & Under fitting)

    欠拟合(Under Fitting) 欠拟合指的是模型没有很好地学习到训练集上的规律. 欠拟合的表现形式: 当模型处于欠拟合状态时,其在训练集和验证集上的误差都很大: 当模型处于欠拟合状态时,根本的办 ...

  9. 【golang】使用rpcx不指定tags报错 undefined: serverplugin.ConsulRegisterPlugin

    为了避免引入不必要的库, rpcx采用了 Go 条件编译 的特性, 你可以只引入必要的特性. 比如你只使用 etcd 作为注册中心的时候, 你不希望引入 consul.zookeeper相关的库,你需 ...

  10. Linux下的find命令详解

    0x01 简介 find命令用来在指定目录下查找文件.任何位于参数之前的字符串都将被视为欲查找的目录名.如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件.并且将查找到的子 ...