我有double
类型的变量,我希望它们是float
。有没有办法强制变量为float
而不是加倍,是否有办法以某种全局方式对主函数开头几行的所有函数和子函数进行操作?我有很多函数,它们使用许多临时变量并创建它们返回的变量。完成我的所有功能并更改它们将非常困难。
我理解这个要求:
我正在编写MATLAB程序以模拟我将在硬件中实现的算法,我想确保使用32位作为我的信号大小不会导致计算错误。
答案 0 :(得分:7)
根据@cbz的建议使用B=single(A)
,或者将数组定义为SINGLE,例如通过调用B=zeros(3,3,'single')
在Matlab中创建“浮点数”。
没有办法将Matlab全局转变为“浮动”环境。虽然大多数低级函数也是为single
实现的(除了一些例外,例如DOUBLE帮助中提到的那些),但许多高级内置函数只能用于{{1} }}。
换句话说,您必须手动将变量定义为double
,您必须定期检查变量是否未悄然转换为single
,最后,如果代码需要尚未为double
实现的函数,则代码可能无效。
答案 1 :(得分:5)
相当于'float'的MATLAB是'single。您可以使用
进行转换B = single(A).
那就是说,你认为这相当于32位可能需要重新审视。它并不那么简单。