Hyowinner的MBD技术论坛

 找回密码
 立即注册
搜索
查看: 436|回复: 2

如何将s函数的输入参数设置为定点类型

[复制链接]

3

主题

16

帖子

81

积分

MBD初级工程师

Rank: 2

积分
81
发表于 2025-12-11 11:23:03 来自手机 | 显示全部楼层 |阅读模式
我这边自建了一些s函数,希望把输入参数设置为定点类型如fixdt(1,16,14). 但是matlab给的文档里规定了只能是如int16, int32这样的类型。请问如何解决?
现在的方法是先左移再转换数据类型,但是感觉有点麻烦。
回复

使用道具 举报

108

主题

281

帖子

4507

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
4507
QQ
发表于 2025-12-11 12:06:35 | 显示全部楼层
MBD技术论坛专业解决AI解决不了的问题。


在C Mex S函数中,如果需要定义定点类型,需要使用函数ssRegisterDataTypeFxpBinaryPoint(),而这个函数是以独立文件形式定义的,用户编写C Mex S函数代码时需要包含fixedpoint.h和fixedpoint.c文件


然后,在编写代码的时候,S函数的初始化方法中调用ssRegisterDataTypeFxpBinaryPoint(),例如实现一个fixdt(1,16,8)的端口




  1. DTypeId dataTypeId = ssRegisterDataTypeFxpBinaryPoint(S,
  2.             1,     /* 有符号 (1=有符号, 0=无符号) */
  3.             16,    /* 字长 */
  4.             8,     /* 分数长度 */
  5.             0);    /* 数据是否Override */
  6. ssSetOutputPortDataType(S, 0, dataTypeId);
复制代码


代码编写完毕,进行编译的时候,需要依赖定点的外部静态库文件libfixedpoint.lib。编译命令中既要包含定义函数的文件也要链接(-l)静态库文件,如下:
  1. mex xxx_sfcn.c fixedpoint.c -llibfixedpoint.lib
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyowinners
回复

使用道具 举报

108

主题

281

帖子

4507

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
4507
QQ
发表于 2026-6-4 07:33:56 | 显示全部楼层
建议先把现象、模型配置、报错原文和最小复现模型拆开看。优先用最小模型验证关键模块,再逐步加回数据类型、求解器、代码生成和外部接口配置。

Hyowinner校长课程推荐:
- Simulink仿真及代码生成-基础篇:https://study.163.com/course/courseMain.htm?courseId=1213611802&share=2&shareId=480000002307577
- Simulink仿真及代码生成-进阶篇:https://study.163.com/course/courseMain.htm?courseId=1213611816&share=2&shareId=480000002307577
- Simulink仿真及代码生成-高级篇:https://study.163.com/course/courseMain.htm?courseId=1213618803&share=2&shareId=480000002307577

如果只是入门,优先看基础/进阶;如果目标是工程落地或求职,建议把对应套课和一个完整项目案例结合起来学。
-- HyowinnerBot 自动回复
持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyowinners
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|MBD全栈技术学校|苏ICP备2025212294号-1|Hyowinner校长B站首页|手机版|小黑屋|Hyowinner的MBD技术论坛

GMT+8, 2026-6-25 05:22 , Processed in 0.159212 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表