在MATLAB中强制变量类型

8
我有一些变量是double类型,我想让它们成为float。有没有一种方法可以强制将变量设置为float而不是double?此外,在主函数的开头用几行代码以一种全局的方式进行操作是否可行呢?我有许多函数,并且它们使用许多临时变量,并创建它们返回的变量。更改所有函数将非常困难。
我的请求理由:
我正在编写MATLAB程序以模拟算法,然后再将其实现在硬件中,我想确保使用32位作为信号大小不会导致计算错误。

2
哦,Matlab中可以进行“类型转换”。请参见http://www.mathworks.com/help/techdoc/ref/typecast.html。我不确定是否可以全局应用,但是这种方式似乎可能有所帮助http://www.mathworks.com/help/techdoc/matlab_oop/br2vkky.html。还有http://www.mathworks.com/help/techdoc/matlab_oop/brglmxp.html。 - Aaron Newton
2个回答

8

使用@cbz建议的B=single(A),或者将数组定义为SINGLE,例如通过调用B=zeros(3,3,'single')在Matlab中创建“浮点数”。

没有办法全局将Matlab转换为“浮点”环境。虽然大多数低级函数也实现了single(有一些例外,例如在DOUBLE的帮助中提到的那些),但是许多高级内置函数只能使用double

换句话说,您必须手动将变量定义为single,定期检查变量是否已悄然转换为double,最终,如果需要一个尚未实现为single的函数,则您的代码可能无法正常工作。


5

MATLAB中与“float”相对应的是“single”。您可以使用以下方法进行转换:

B = single(A).

话虽如此,你认为这等同于32位可能需要重新考虑。问题并不那么简单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接