matlab改成单精度运算,单精度运算 - MATLAB Simulink Example - MathWorks 中国
创建双精度数据
首先创建一些数据,默认情况下为双精度。
Ad = [1 2 0; 2 5 -1; 4 10 -1]
Ad = 3×3
1 2 0
2 5 -1
4 10 -1
转换为单精度
可以使用 single 函数将数据转换为单精度。
A = single(Ad); % or A = cast(Ad,'single');
创建单精度零和一
此外,也可以分别使用函数创建单精度零和一。
n = 1000;
Z = zeros(n,1,'single');
O = ones(n,1,'single');
看一下工作区中的变量。
whos A Ad O Z n
Name Size Bytes Class Attributes
A 3x3 36 single
Ad 3x3 72 double
O 1000x1 4000 single
Z 1000x1 4000 single
n 1x1 8 double
可以看到,部分变量的类型为 single,变量 A(Ad 的单精度版本)需要一半的内存字节数用于存储,因为单精度仅需要四字节(32 位),而双精度需要 8 字节(64 位)。
算术运算和线性代数运算
可以对单精度数据执行标准算术运算和线性代数运算。
B = A' % Matrix Transpose
B = 3x3 single matrix
1 2 4
2 5 10
0 -1 -1
whos B
Name Size Bytes Class Attributes
B 3x3 36 single
可以看出,此操作的结果 B 为单精度。
C = A * B % Matrix multiplication
C = 3x3 single matrix
5 12 24
12 30 59
24 59 117
C = A .* B % Elementwise arithmetic
C = 3x3 single matrix
1 4 0
4 25 -10
0 -10 1
X = inv(A) % Matrix inverse
X = 3x3 single matrix
5 2 -2
-2 -1 1
0 -2 1
I = inv(A) * A % Confirm result is identity matrix
I = 3x3 single matrix
1 0 0
0 1 0
0 0 1
I = A \ A % Better way to do matrix division than inv
I = 3x3 single matrix
1 0 0
0 1 0
0 0 1
E = eig(A) % Eigenvalues
E = 3x1 single column vector
3.7321
0.2679
1.0000
F = fft(A(:,1)) % FFT
F = 3x1 single column vector
7.0000 + 0.0000i
-2.0000 + 1.7321i
-2.0000 - 1.7321i
S = svd(A) % Singular value decomposition
S = 3x1 single column vector
12.3171
0.5149
0.1577
P = round(poly(A)) % The characteristic polynomial of a matrix
P = 1x4 single row vector
1 -5 5 -1
R = roots(P) % Roots of a polynomial
R = 3x1 single column vector
3.7321
1.0000
0.2679
Q = conv(P,P) % Convolve two vectors
Q = 1x7 single row vector
1 -10 35 -52 35 -10 1
R = conv(P,Q)
R = 1x10 single row vector
1 -15 90 -278 480 -480 278 -90 15 -1
stem(R); % Plot the result
用于处理单精度或双精度的一个程序
现在来看一个函数,该函数用于计算为使比率小于 single 或 double 数据类型的正确机器精度 (eps),斐波那契数列需要的足够项数。
% How many terms needed to get single precision results?
fibodemo('single')
ans = 19
% How many terms needed to get double precision results?
fibodemo('double')
ans = 41
% Now let's look at the working code.
type fibodemo
function nterms = fibodemo(dtype)
%FIBODEMO Used by SINGLEMATH demo.
% Calculate number of terms in Fibonacci sequence.
% Copyright 1984-2014 The MathWorks, Inc.
fcurrent = ones(dtype);
fnext = fcurrent;
goldenMean = (ones(dtype)+sqrt(5))/2;
tol = eps(goldenMean);
nterms = 2;
while abs(fnext/fcurrent - goldenMean) >= tol
nterms = nterms + 1;
temp = fnext;
fnext = fnext + fcurrent;
fcurrent = temp;
end
请注意,我们初始化了几个变量,即 fcurrent、fnext 和 goldenMean,初始化所用的值取决于输入数据类型,容差 tol 也取决于该类型。与等效的双精度计算相比,单精度要求计算的项较少。
matlab改成单精度运算,单精度运算 - MATLAB Simulink Example - MathWorks 中国相关推荐
- 聚类 轮廓 matlab,聚类分析
- MATLAB Simulink Example
- MathWorks 中国
K 均值和层次聚类 Statistics and Machine Learning Toolbox 中的一些函数可执行 K 均值聚类和层次聚类. K 均值聚类是一种分区方法,它将数据中的观测值视为具有 ...
- matlab 读取mdf文件路径,访问 MDF 文件
- MATLAB Simulink Example
- MathWorks 中国
打开 MDF 文件 通过指定目标文件的名称来打开 MDF 文件.有关该文件的许多基本详细信息已提供.此示例文件是使用 Vector CANape 创建的. m = mdf("CANapeBa ...
- matlab地震振幅属性分析,洛马普列塔地震分析
- MATLAB Simulink Example
- MathWorks 中国...
加载地震数据 文件 quake.mat 包含圣克鲁斯山脉在 1989 年 10 月 17 日发生的洛马普列塔地震的 200Hz 数据.该数据由加州大学圣克鲁斯分校的 Joel Yellin 通过 Ch ...
- matlab中矩阵重排列,稀疏矩阵重新排序
- MATLAB Simulink Example
- MathWorks 中国
可视化稀疏矩阵 spy 图可以显示矩阵中的非零元素. 下面的 spy 图显示了从杠铃矩阵的一部分得到的稀疏对称正定矩阵.此矩阵描述类似杠铃的图中的连接. load barbellgraph.mat S ...
- matlab实现字符识别,字符识别
- MATLAB Simulink Example
- MathWorks 中国
定义问题 脚本 prprob 定义了一个包含 26 列的矩阵 X,每列对应一个字母.每列有 35 个值,值可能是 1,也可能是 0.每列(包含 35 个值)定义一个字母的 5×7 位图. 矩阵 T 是 ...
- 矩阵指数 matlab,矩阵指数
- MATLAB Simulink Example
- MathWorks 中国
方法 1:加权平方 expmdemo1 是以下著作中算法 11.3.1 的实现: Golub, Gene H. and Charles Van Loan.Matrix Computations, 3r ...
- matlab 总谐波失真,分析谐波失真
- MATLAB Simulink Example
- MathWorks 中国
简介 在此示例中,我们将研究放大器的简化模型的输出,该放大器的噪声耦合到输入信号并且呈现非线性.我们将研究输入端的衰减如何降低谐波失真.我们还将举例说明如何对放大器输出端的失真在数学上进行校正. 查看 ...
- MATLAB程序设计与应用 2. 第2章 MATLAB数据及其运算 2.1 MATLAB数值数据 2.2 MATLAB矩阵的表示 2.3 变量及其操作
MATLAB程序设计与应用 文章目录 MATLAB程序设计与应用 2. 第2章 MATLAB数据及其运算 2.1 MATLAB数值数据 2.1.1 数值数据类型的分类 2.1.2 数据的输出格式 2. ...
- Matlab矩阵基本操作(定义,运算)
关注公众号:coding进阶,获取更多实战技术. 一.矩阵的表示 在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在"[ ]"内: b.矩阵的同行元素之间用空格(或" ...
最新文章
- Linux进程浏览器htop安装与使用
- 反欺诈中所用到的机器学习模型有哪些?
- 全球及中国皮肤晒黑喷雾行业销售模式及动态盈利分析报告2021年版
- 白话经典算法系列之六 快速排序 快速搞定
- 【CodeForces - 244A 】Dividing Orange (构造,水题)
- python怎么给画布填上颜色_python numpy matplotlib画小方块填充背景色和添加不同色彩的文字...
- 基于Matlab的三维胖射线追踪算法
- ES8新特性_async函数---JavaScript_ECMAScript_ES6-ES11新特性工作笔记048
- TOGAF9.2 第I部分 第1章简介
- DDCTFMulTzor-xoortol的使用
- 【软件安装】TeXLive 2022安装(Latex下载,安装,测试,升级)教程
- 1.2.3 SPF计算过程
- Activiti工作流表之间的关系
- SpringSecurity实战(六)-集成图形验证码-自定义认证实现
- 短视频运营的目标:引流并转化客户
- HiWork发布1.7.0新版本——可开启频道公开链接,增加HiWork客服功能及集成应用麦客
- 删除后一页数据后,分页显示上一页数据
- 人脸识别:路在何方?| 爱莫受邀参加VALSE Webinar报告会
- go-pitaya学习笔记(9)-rate_limiting demo分析
- 工厂方法模式、简单工厂模式、抽象工程模式
热门文章
- windterm主密码关闭
- Photoshop 技能大全(包括九大类技能)
- Win10管理员命令提示符窗口的七种打开方法汇总
- 傅里叶变换--虚部的理解
- 康希诺生物成功登陆科创板;腾讯2020年第二季度收入同比增长29% | 美通企业日报...
- git、gitlib、gitlab、GitHub区别
- Ubuntu中使用Nginx+rtmp模块搭建流媒体视频点播服务
- 快速开发框架源码 JNPF 旗舰版 单体版 java+.net6 炎黄盈动
- 《大营救》将登陆央视 高曙光李佳璇领衔主演
- linux ajp集群,Apache应用集群——AJP方式