主要内容

globalfimath

配置全局fimath和返回句柄对象

语法

G=globalfimath
G= globalfimath ('PropertyName1',属性值1,...)
G=globalfimath(f)

描述

G=globalfimath将句柄对象返回到全局fimath。全局fimath与菲马斯对象,但全局应用。

G= globalfimath ('PropertyName1',属性值1,...)使用命名属性及其相应值设置全局fimath。在此语法中未指定的属性将自动设置为当前全局fimath的属性。

G=globalfimath(f)设置全局fimath的属性以匹配输入的属性菲马斯对象F,并向其返回句柄对象。

除非,在以前的版本中,您使用saveglobalfimathpref函数将全局fimath设置保存到MATLAB®首选项,即使用globalfimath函数仅适用于当前的MATLAB会话。最佳做法是从MATLAB首选项中删除全局fimath,以便使用默认值启动每个MATLAB会话菲马斯设置。要删除全局fimath,请使用removeglobalfimathpref作用

例子

全部崩溃

使用globalfmath函数设置、更改和重置全局fmath。

创建一个fimath对象并将其用作全局的fimath。

G=全局最大值(“圆形模式”,“地板”,“溢出模式”,“包装”)
G=取整方法:地板溢出动作:包裹产品模式:FullPrecision总和模式:FullPrecision

使用新的默认值创建另一个fimath对象。

F1 = fimath
F1=取整方法:地板溢出动作:包裹产品模式:FullPrecision总和模式:FullPrecision

创建一个与全局fimath关联的fi对象a。

A=fi(π)
A=3.1416 DataTypeMode:定点:二进制点缩放符号性:有符号字长:16分位数长度:13

现在将全局fimath的“SumMode”属性设置为“KeepMSB”,并保留当前全局fimath的所有其他属性值。

G=全局最大值(“SumMode”,“KeepMSB”)
G = RoundingMethod: Floor OverflowAction: Wrap ProductMode: FullPrecision SumMode: KeepMSB SumWordLength: 32 CastBeforeSum: true

通过直接与句柄对象G交互来更改全局fimath。

G.ProductMode =“指定精度”
G=取整方法:楼层溢出动作:换行产品模式:SpecifyPrecision ProductWordLength:32 ProductFractionLength:30 SumMode:KeepMSB SumWordLength:32 CastBeforeSum:true

通过调用g上的Reset方法将全局fmath重置为工厂默认值。这相当于使用resetglobalfmath函数。

重置(G);G
G=取整方法:最近溢出动作:饱和产品模式:全精度求和模式:全精度

提示

如果你总是使用相同的菲马斯设置,并且您没有使用与其他人共享代码globalfimath函数是配置这些设置的快速、方便的方法。但是,如果您与其他人共享代码或使用菲亚塞尔函数用于加速算法或生成算法的C代码,考虑下面的替代方案。

球门 使用globalfimath问题 解决方案

共享代码

如果您与使用不同全局设置的人共享代码菲马斯设置时,它们可能会看到不同的结果。

分离菲马斯使用类型表从算法中删除属性。有关详细信息,请参阅将数据类型定义与算法分离.

使用菲亚塞尔或从MATLAB算法生成C代码使用编码基因

你不能使用globalfimath在该算法中。如果您使用一个globalfimath设置并以不同的方式运行它globalfimath设置时,结果可能会有所不同。有关详细信息,请参阅为MEX函数指定默认的fmath值.

在要从中生成代码的算法中使用类型表。这将您与全局设置隔离开来,并使代码具有可移植性。有关更多信息,请参见将数据类型定义与算法分离.

R2010a中引入