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.矩阵的同行元素之间用空格(或" ...
最新文章
- 清华大学软件学院院长王建民:以数字基建为契机,加强工业互联网大数据软件建设...
- Java基础:基本数据类型包装类
- hive集成spark和mysql
- mybatis简单案例源码详细【注释全面】——测试层(UserMapperTest.java)
- linux sort 排序 性能,Linux中sort 排序
- JSON.toJSONString 首字母不小写
- Powershell都有哪些好用的技能?
- Ogre1.7的地形、天空与雾
- 为Python IDLE 添加清屏(Ctrl + L )快捷工具(附带解决错误的方法)
- AutoLayout 讲解
- python网络爬虫实战解析
- Java过滤器与拦截器的区别
- ubuntu18.04 pybluez pip3安装
- Android仿支付宝9.5芝麻信用分仪表盘
- 登录模板源码 : bootstrap风格
- 抖音如何快速涨粉?李佳琦涨粉技巧揭秘
- 肖 sir_就业课__005项目数据
- 模拟登录淘宝并拍下购物车商品
- lingo中@wrap函数的理解
- 刘易远:你自己,才是自己的救世主
热门文章
- 最近这么火的iOS视频直播
- 《世界著名心理学家——弗洛伊德》简单读书笔记
- android从入门到精通明日科技 光盘
- 行式存储和列式存储的区别
- 【瑞芯微Rockchip Linux平台】SoftAp需求实现(1)进程代码实现
- 基于Java毕业设计员工工资管理系统源码+系统+mysql+lw文档+部署软件
- ## 耳机插入电脑无声音,疑难解答显示“音频服务无响应”的一种解决思路:
- Google play应用常见的下架因素有哪些?怎么避免?
- java3d bezier曲面_使用Bezier曲面渲染飘动的红旗
- 蜂糖李为何如蜂蜜般香甜?它承载着镇宁人民的希望呀