当前位置: 首页 > news >正文

ps怎样做网站详情页asp无刷新网站模板

ps怎样做网站详情页,asp无刷新网站模板,建筑公司注册条件,凡科电脑版登录首页文章目录 前言 背景介绍 初始算法 优化算法 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink软件优化(一)——动态内存负荷压缩》 见《【研发日记】Matlab/Simulink软件优化(二)——通信负载柔性均衡算法》 背景介绍 在一个嵌入式软件开发项目中#xff0c;需要开… 文章目录 前言 背景介绍 初始算法 优化算法 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink软件优化(一)——动态内存负荷压缩》 见《【研发日记】Matlab/Simulink软件优化(二)——通信负载柔性均衡算法》 背景介绍 在一个嵌入式软件开发项目中需要开发一个数据处理算法功能是求解一个动态变化数组的平均值、极值和极值位号并且具备动态剔除个别元素元素序列不变的功能。示例如下 数组2、4、6、8、10 剔除第1个元素、第3个元素 求均值4 8 10/ 3 7.3 求最小值4 求最小值位号2 求最大值10 求最大值位号5 初始算法 一开始算法开发的思路非常简单就是根据上述示例把求解过程拆分成两步第一步构建剔除特定元素后的新数组第二步分别求解统计结果示例如下 以上模型生成的代码如下 #include untitled.h #include untitled_private.h/* External outputs (root outports fed by signals with default storage) */ ExtY_untitled_T untitled_Y;/* Real-time model */ static RT_MODEL_untitled_T untitled_M_; RT_MODEL_untitled_T *const untitled_M untitled_M_;/* Model step function */ void untitled_step(void) {real_T Array_min[5];real_T ArrayIndex;int32_T b_idx;int32_T b_k;int32_T e_k;int32_T i;/* MATLAB Function: Root/MATLAB Function incorporates:* Constant: Root/Constant*/for (i 0; i 5; i) {Array_min[i] untitled_ConstP.Constant_Value[i];}Array_min[0] 255.0;Array_min[2] 255.0;untitled_Y.Out2 255.0;b_idx 1;for (b_k 1; b_k 1 6; b_k) {if (untitled_Y.Out2 Array_min[b_k]) {untitled_Y.Out2 Array_min[b_k];b_idx b_k 1;}}for (i 0; i 5; i) {Array_min[i] untitled_ConstP.Constant_Value[i];}Array_min[0] 0.0;Array_min[2] 0.0;untitled_Y.Out4 0.0;b_k 1;for (i 1; i 1 6; i) {if (untitled_Y.Out4 Array_min[i]) {untitled_Y.Out4 Array_min[i];b_k i 1;}}for (i 0; i 5; i) {Array_min[i] 0.0;}ArrayIndex 0.0;for (i 0; i 5; i) {if ((i 1 ! 1) (i 1 ! 3)) {ArrayIndex;Array_min[(int32_T)ArrayIndex - 1] untitled_ConstP.Constant_Value[i];}}if (1.0 ArrayIndex) {i -1;} else {i (int32_T)ArrayIndex - 1;}if ((int8_T)(i 1) 0) {ArrayIndex 0.0;} else if ((int8_T)(i 1) 0) {ArrayIndex 0.0;} else {ArrayIndex Array_min[0];for (e_k 2; e_k (int8_T)(i 1); e_k) {ArrayIndex Array_min[e_k - 1];}}/* Outport: Root/Out1 incorporates:* MATLAB Function: Root/MATLAB Function*/untitled_Y.Out1 ArrayIndex / (real_T)(int8_T)(i 1);/* Outport: Root/Out3 incorporates:* MATLAB Function: Root/MATLAB Function*/untitled_Y.Out3 b_idx;/* Outport: Root/Out5 incorporates:* MATLAB Function: Root/MATLAB Function*/untitled_Y.Out5 b_k; }/* Model initialize function */ void untitled_initialize(void) {/* (no initialization code required) */ }/* Model terminate function */ void untitled_terminate(void) {/* (no terminate code required) */ } 上述代码仿真运行没有什么问题从结果来看是符合功能需求的示例如下 分析上述代码会发现构建新数组时存在一些问题。如果数组中出现大于255的值或者小于0的负数时算法就需要重新匹配。如果数组的Size大于5或者剔除的个数大于2算法也需要重新匹配。这种繁复的工作是我们不希望看到的。 优化算法 针对上述问题的分析和研究发现Matlab官方提供了一个现成的函数功能可用于剔除特定元素的数据统计算法能让我们简化构建新数组的工作也就免去了繁复匹配算法的问题示例如下 Tips因为有NaN的存在数组的数据类型如果不是double型可能会出问题。例如NaN赋给uint8型的数组是对应元素就会变成0再后续的求解函数中是按0对待的。 以上模型生成的代码如下 #include untitled.h #include untitled_private.h/* External outputs (root outports fed by signals with default storage) */ ExtY_untitled_T untitled_Y;/* Real-time model */ static RT_MODEL_untitled_T untitled_M_; RT_MODEL_untitled_T *const untitled_M untitled_M_;/* Model step function */ void untitled_step(void) {real_T data[5];real_T y;int32_T c_k;int32_T i;int32_T k;boolean_T exitg1;/* MATLAB Function: Root/MATLAB Function incorporates:* Constant: Root/Constant*/for (i 0; i 5; i) {data[i] untitled_ConstP.Constant_Value[i];}data[0] (rtNaN);data[2] (rtNaN);i 0;k 2;exitg1 false;while ((!exitg1) (k 6)) {if (!rtIsNaN(data[k - 1])) {i k;exitg1 true;} else {k;}}if (i 0) {/* Outport: Root/Out2 */untitled_Y.Out2 (rtNaN);i 1;} else {untitled_Y.Out2 data[i - 1];for (k i; k 5; k) {if (untitled_Y.Out2 data[k]) {untitled_Y.Out2 data[k];i k 1;}}}k 0;c_k 2;exitg1 false;while ((!exitg1) (c_k 6)) {if (!rtIsNaN(data[c_k - 1])) {k c_k;exitg1 true;} else {c_k;}}if (k 0) {/* Outport: Root/Out4 */untitled_Y.Out4 (rtNaN);k 1;} else {untitled_Y.Out4 data[k - 1];for (c_k k; c_k 5; c_k) {if (untitled_Y.Out4 data[c_k]) {untitled_Y.Out4 data[c_k];k c_k 1;}}}y 0.0;c_k 0;if (!rtIsNaN(data[1])) {y data[1];c_k 1;}if (!rtIsNaN(data[3])) {y data[3];c_k;}if (!rtIsNaN(data[4])) {y data[4];c_k;}/* Outport: Root/Out1 incorporates:* MATLAB Function: Root/MATLAB Function*/untitled_Y.Out1 y / (real_T)c_k;/* Outport: Root/Out3 incorporates:* MATLAB Function: Root/MATLAB Function*/untitled_Y.Out3 i;/* Outport: Root/Out5 incorporates:* MATLAB Function: Root/MATLAB Function*/untitled_Y.Out5 k; }/* Model initialize function */ void untitled_initialize(void) {/* Registration code *//* initialize non-finites */rt_InitInfAndNaN(sizeof(real_T)); }/* Model terminate function */ void untitled_terminate(void) {/* (no terminate code required) */ } Tips从生成的C代码来看底层逻辑的实现方法与前一种是类似的 上述代码仿真运行也没有问题结果符合需求示例如下 分析上述算法的特点不仅实现了项目中的需求同时也利用NaNFlag为数据处理算法进行了降阶。 分析和应用 利用NaNFlag开发数据处理算法时需要注意如下几点 1、两种算法生成的代码底层逻辑都一样但是是开发复杂度和软件成熟度上差别好多前者更适合用于逻辑探索和思维训练后者跟适合于工程应用。 2、两种算法的开发自由度不同可裁剪和压缩负载的空间也不同。前者可以根据实际应用裁剪出自己需要的数组大小选取自己够用的数据类型能更极致压缩算法对内存资源和算力资源的消耗。后者是把一部分算法设计工作交给代码生成工具去做了开发者就没有这么大的灵活度了。前者更适用于处理器资源有限的专用嵌入式项目后者更实用于模块化平台化开发的项目。 总结 以上就是本人在嵌入式软件开发中设计数据处理算法时一些个人理解和分析的总结首先介绍了它的背景情况然后展示它的初始设计和优化设计最后分析了利用NaNFlag开发数据处理算法的注意事项和应用场景。 后续还会分享另外几个最近总结的软件优化知识点欢迎评论区留言、点赞、收藏和关注这些鼓励和支持都将成文本人持续分享的动力。 另外上述例程使用的Demo工程可以到笔者的主页查找和下载。 版权声明原创文章转载和引用请注明出处和链接侵权必究
http://www.dnsts.com.cn/news/58636.html

相关文章:

  • 营销型网站建设_做网站seo排行榜
  • 营业推广的概念seo关键词排名怎么提升
  • 专业网站建设大型公司新网站如何做友情链接
  • .net做网站开发wordpress文章序号排列
  • 聊城做网站公司企业网站建设的可行性分析
  • asp.net网站建设论文2网站建设
  • 奉化区建设局网站开锁做网站怎么样
  • 淘宝优惠券发布网站怎么做店铺logo
  • 高端网站建设企业怎样在百度上做推广网站
  • 宁波网站建设报价多少珠海做企业网站多少钱
  • 网站架构包括哪些网站制作上海
  • 黄金网站软件入口免费轻淘客一键做网站
  • 上海做网站的多吗哈尔滨制作网站的公司
  • ipv6改造网站怎么做怎样在百度建立自己的网站
  • 太原网站建设ty556网站建设行吗
  • 南京个人做网站360网站seo怎么做
  • dede查看网站网络服务中心
  • 网站开发所需要的语言wordpress招商主题
  • 罗湖商城网站设计价格台州做网站哪家公司好
  • 网站制作论文优帮云wordpress 百度主题
  • 定制彩票网站开发福清营销型网站建设方案
  • 建设银行社保网站烟台网站建设便宜臻动传媒
  • 洱源名师工作室网站建设网站备案 教程
  • 怎么投诉网站制作公司彩页设计图片模板
  • 如何做好外贸网站建设关键词排名优化技巧
  • 公司网站建设设计公司哪家好石家庄搜索引擎优化公司
  • 网站定制化开发介绍引用网站信息怎么做备注
  • 温州电子网站建设网站模糊设计
  • 网站建设空间申请云服务器是否可以做多个网站
  • 北京市地铁建设公司网站西安网络安全公司排名