主要内容

解决错误:数据类型不匹配

问题

在这个例子中,y使用默认的fimath设置FullPrecisionSumMode财产。在函数的for循环的每次迭代中mysum,的字长y增长了一点。

在MATLAB中仿真®,没有问题,因为数据类型可以很容易地在MATLAB中更改。但是,在构建时发生数据类型不匹配错误,因为在C中数据类型必须保持静态。

可能的解决方案金宝搏官方网站

重写函数,在for循环中使用下标赋值。

在这个例子中,重写Y = Y + x(n)作为Y (:) = Y + x(n),以便将右边的值赋给的数据类型y.这个赋值保留了numerictypey并避免了类型不匹配错误。

原始算法 新算法

功能:

函数y = mysum (x, T)% # codegeny = 0(大小(x),“喜欢”, T.y);N = 1:length(x) y = y + x(N);结束结束

功能:

函数y = mysum (x, T)% # codegeny = 0(大小(x),“喜欢”, T.y);N = 1:length(x) y(:) = y + x(N);结束结束

类型表:

函数T = mytypes (dt)开关(dt)情况下“固定”F = fimath (“RoundingMethod”“地板”) T.x = fi([],1,16,11, F);T.y = fi([],1,16,6, F);结束结束

类型表:

函数T = mytypes (dt)开关(dt)情况下“固定”F = fimath (“RoundingMethod”“地板”) T.x = fi([],1,16,11, F);T.y = fi([],1,16,6, F);结束结束

另请参阅

相关的话题