创建双精度数据

首先创建一些数据,默认情况下为双精度。

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 中国相关推荐

  1. 聚类 轮廓 matlab,聚类分析 - MATLAB Simulink Example - MathWorks 中国

    K 均值和层次聚类 Statistics and Machine Learning Toolbox 中的一些函数可执行 K 均值聚类和层次聚类. K 均值聚类是一种分区方法,它将数据中的观测值视为具有 ...

  2. matlab 读取mdf文件路径,访问 MDF 文件 - MATLAB Simulink Example - MathWorks 中国

    打开 MDF 文件 通过指定目标文件的名称来打开 MDF 文件.有关该文件的许多基本详细信息已提供.此示例文件是使用 Vector CANape 创建的. m = mdf("CANapeBa ...

  3. matlab地震振幅属性分析,洛马普列塔地震分析 - MATLAB Simulink Example - MathWorks 中国...

    加载地震数据 文件 quake.mat 包含圣克鲁斯山脉在 1989 年 10 月 17 日发生的洛马普列塔地震的 200Hz 数据.该数据由加州大学圣克鲁斯分校的 Joel Yellin 通过 Ch ...

  4. matlab中矩阵重排列,稀疏矩阵重新排序 - MATLAB Simulink Example - MathWorks 中国

    可视化稀疏矩阵 spy 图可以显示矩阵中的非零元素. 下面的 spy 图显示了从杠铃矩阵的一部分得到的稀疏对称正定矩阵.此矩阵描述类似杠铃的图中的连接. load barbellgraph.mat S ...

  5. matlab实现字符识别,字符识别 - MATLAB Simulink Example - MathWorks 中国

    定义问题 脚本 prprob 定义了一个包含 26 列的矩阵 X,每列对应一个字母.每列有 35 个值,值可能是 1,也可能是 0.每列(包含 35 个值)定义一个字母的 5×7 位图. 矩阵 T 是 ...

  6. 矩阵指数 matlab,矩阵指数 - MATLAB Simulink Example - MathWorks 中国

    方法 1:加权平方 expmdemo1 是以下著作中算法 11.3.1 的实现: Golub, Gene H. and Charles Van Loan.Matrix Computations, 3r ...

  7. matlab 总谐波失真,分析谐波失真 - MATLAB Simulink Example - MathWorks 中国

    简介 在此示例中,我们将研究放大器的简化模型的输出,该放大器的噪声耦合到输入信号并且呈现非线性.我们将研究输入端的衰减如何降低谐波失真.我们还将举例说明如何对放大器输出端的失真在数学上进行校正. 查看 ...

  8. 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. ...

  9. Matlab矩阵基本操作(定义,运算)

    关注公众号:coding进阶,获取更多实战技术. 一.矩阵的表示 在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在"[ ]"内: b.矩阵的同行元素之间用空格(或" ...

最新文章

  1. Linux进程浏览器htop安装与使用
  2. 反欺诈中所用到的机器学习模型有哪些?
  3. 全球及中国皮肤晒黑喷雾行业销售模式及动态盈利分析报告2021年版
  4. 白话经典算法系列之六 快速排序 快速搞定
  5. 【CodeForces - 244A 】Dividing Orange (构造,水题)
  6. python怎么给画布填上颜色_python numpy matplotlib画小方块填充背景色和添加不同色彩的文字...
  7. 基于Matlab的三维胖射线追踪算法
  8. ES8新特性_async函数---JavaScript_ECMAScript_ES6-ES11新特性工作笔记048
  9. TOGAF9.2 第I部分 第1章简介
  10. DDCTFMulTzor-xoortol的使用
  11. 【软件安装】TeXLive 2022安装(Latex下载,安装,测试,升级)教程
  12. 1.2.3 SPF计算过程
  13. Activiti工作流表之间的关系
  14. SpringSecurity实战(六)-集成图形验证码-自定义认证实现
  15. 短视频运营的目标:引流并转化客户
  16. HiWork发布1.7.0新版本——可开启频道公开链接,增加HiWork客服功能及集成应用麦客
  17. 删除后一页数据后,分页显示上一页数据
  18. 人脸识别:路在何方?| 爱莫受邀参加VALSE Webinar报告会
  19. go-pitaya学习笔记(9)-rate_limiting demo分析
  20. 工厂方法模式、简单工厂模式、抽象工程模式

热门文章

  1. windterm主密码关闭
  2. Photoshop 技能大全(包括九大类技能)
  3. Win10管理员命令提示符窗口的七种打开方法汇总
  4. 傅里叶变换--虚部的理解
  5. 康希诺生物成功登陆科创板;腾讯2020年第二季度收入同比增长29% | 美通企业日报...
  6. git、gitlib、gitlab、GitHub区别
  7. Ubuntu中使用Nginx+rtmp模块搭建流媒体视频点播服务
  8. 快速开发框架源码 JNPF 旗舰版 单体版 java+.net6 炎黄盈动
  9. 《大营救》将登陆央视 高曙光李佳璇领衔主演
  10. linux ajp集群,Apache应用集群——AJP方式