如何防止改变数据类型fixdt uint8 (0 8 0) ?

10视图(30天)
SLC
SLC 2017年10月13日
回答: Igor Tselniker2023年5月11日14:30
我怎样才能防止数值数据类型fixdt(0 8 0)从转换uint8通过一块数据类型转换模型将输出fixdt (0 8 0) ?金宝app我试过R2013b和R2017a。
提前谢谢!

答案(1)

Igor Tselniker
Igor Tselniker 2023年5月11日14:30
你好,
我猜你正在试图做一个作业在MATLAB函数块?
我问,因为我从未经历过任何问题当试图分配fixdt(0 8 0)信号(s)使用“适当的”仿真软件模块。金宝app
如果是这样的话,那么下面让我们假设你有一个在仿真软件MATLAB函数模型:金宝app
函数fcn
全球cfg_rw_vref_mu_coarse
cfg_rw_vref_mu_coarse = fi (255 0 8,0);
让我们假设你已宣布 cfg_rw_vref_mu_coarse 作为仿金宝app真软件信号对象:
cfg_rw_vref_mu_coarse = 金宝appSimulink.Signal;
cfg_rw_vref_mu_coarse。数据类型=' fixdt (0 8 0) ';
cfg_rw_vref_mu_coarse。尺寸= 1;
cfg_rw_vref_mu_coarse。复杂性=“真实”的;
现在,尝试运行这个模型将失败有以下错误:
作业写的嵌入。fi{uint8}' value into a 'uint8' type. Code generation does not support changing types through assignment. Check preceding assignments or input type specifications for type mismatches. Function 'MATLAB Function' (#24.44.65)、线5、列1:“cfg_rw_vref_mu_coarse”发布诊断报告。
组件:MATLAB函数|类别:编码器误差
错误发生在MATLAB函数的解析“测试/ MATLAB函数”
组件:MATLAB函数|类别:编码器误差
错误发生在MATLAB函数的解析“测试/ MATLAB函数”
组件:仿真软件|类别金宝app:模型误差
为了解决这个问题,必须使用 下标引用符号 :
函数fcn
全球cfg_rw_vref_mu_coarse
cfg_rw_vref_mu_coarse (,) = fi (255 0 8,0);
注意括号内的结肠(例如(:))!另外,由于这一个标量信号,我们可以使用(1),而不是(:)。
可以找到更多信息订阅引用符号的小节 下标赋值 在以下链接这就解释了为什么这种可以减少传播问题和呈现更多的控制:
顺便说一下,这只有当试图分配 金宝app仿真软件。NumericType的对象 8、16、32或64位,转换成uint8, uint16, uint32 uint64分别时 下标赋值 没有使用
我希望这有助于:)

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!