
MATLAB
文章平均质量分 72
grey_csdn
这个作者很懒,什么都没留下…
展开
-
1788_通过CMD命令行启动操作MATLAB
执行MATLAB的命令或者M文件,M文件的话必须在MATLAB的path中。介绍中说这个很有用,尤其是启动了一个进程而后面的程序又需要这个进程的结果时。这是查找帮助时候的参数,使用的时候MATLAB并不会启动。剩下的几个关于服务器、JAVA以及操作系统的,超出了我的知识范畴,暂时不做探索。这个我觉得很有用,可以启动MATLAB的时候自动切换到指定的目录。指定启动时候的license,如果跟环境变量的冲突,以这个为准。记录命令输出窗口的记录以及所有的命令,最后如果出错似乎也记录。禁用JAVA虚拟机。原创 2023-09-19 18:39:47 · 650 阅读 · 0 评论 -
1786_MTALAB代码生成把通用函数生成独立文件
从上面可以看出,通用函数被生成到了模块的source文件中。其实,很简单的方法就是把通用的函数代码生成到独立的文件中,这样对代码的重用性也是一个很好的保障。简单看了下模型的配置参数,其实还是有相应的配置功能的。从上面可以看出,通用的函数被分离到了独立的文件中。这样在进行相应功能集成整合的时候,只需要把类似的功能拷贝的一个文件夹下进行覆盖即可。今天有个朋友问我了一个问题:如何进行不同模型模块的代码集成,因为不同人的模型代码中可能有同样的通用函数,比如查表函数。原创 2023-09-19 18:35:04 · 300 阅读 · 0 评论 -
1783_CMD启动MATLAB同时执行一个脚本
这多少与我在另外一台机器上的测试结果有点不同,另外一台机器上式中找不到这个脚本文件。最终的解决方式是参考了网络上的一个帖子,把脚本文件名称改成了startup.m。今天这个结果,成功了,但是多少有点出乎我意料了!从MATLAB的命令帮助中可以查到,可以切换到某个目录、可以执行某个MATLAB命令或者脚本。添加一个目录到MATLAB的搜索目录比较简单,就是修改pathdef,为了简单这里不做修改,直接在本来就有的搜索目录中添加一个脚本。上面的这个目录本身在MATLAB的搜索目录之下,我在这里放一个脚本文件。原创 2023-09-03 09:56:58 · 876 阅读 · 0 评论 -
1738_创建自己的simulink模块库
Simulink本身拥有的模块库已经很多,当然不同的模块库需要不同的license。在我们长期的软件开发优化中,我们往往也会逐渐积累出一套适用于我们自己的一套模块,为了能够更加集中方便的管理与使用,创建模块库就是一个必然要走的路。为了避免重复造车轮的窘境,各种代码重用以及方便代码重用的设计思想可谓是层出不穷。在基于simulink建模的软件开发中,软件重用是一个很大的优势。不过,不同于代码,这种软件的重用换了一种方式——模块库。创建模块库实际上跟创建一个模型很类似,不过输入输出的接口得处理好。原创 2023-06-11 10:14:18 · 1289 阅读 · 0 评论 -
1735_MATLAB 2011与2014数据管理上一点小差异
今天在测试一个小问题的时候发现使用MATLAB 2011的两个版本,测试中的几个常量定义始终不能够按照我预想的进行代码生成。一直没有找出原因,无意中尝试了一下2014发现又跟我预想的一样。我使用了同样的脚本对模型进行配置,而其余的参数都是采用了默认。如此看来,要么是MATLAB默认的参数有所变化,要么是数据管理模式有所变化。中间用过相同的模型,从11过渡到14要求重新保存,不知道这中间经历了什么样的转换。这样很多信息就一时间不好确认。数据定义指定到了两个不同的文件中,常量在一个文件,而变量在另一个文件。原创 2023-06-08 09:13:44 · 81 阅读 · 0 评论 -
1726_使用Python从dbc文件中提取simulink建模数据定义
使用dbc文件建模完成CAN通讯是一种比较高效的开发模式,不过在建模的过程中dbc文件中描述的数据需要自己去定义。出于示例的简单,只定义了8位和16位的数据。完成一个M脚本,脚本会通过对MATLAB Workspace中的数据模板进行拷贝修改完成数据定义。运行后,Workspace中已经生成dbc中的数据定义,只需要把这些数据保存成mat文件即可保存使用。在MATLAB的Workspace中定义8位以及16位的数据定义模板,然后执行M文件。后续,提供使用这个示例中的dbc文件进行建模的方法。原创 2023-05-30 07:35:45 · 665 阅读 · 0 评论 -
1724_simulink一维查表功能实现以及代码生成
跟手写代码相比,简单的不仅仅是查表的函数功能,数据表也比较容易实现,尤其是这种比较具有规律性的数据。不过,说到化繁为简的功能,有两个功能确实是让我印象深刻。其中一个我之前在我的博客中大致写了一下,是CAN通讯的收发功能,这个需要独立的license支持。看看现在汽车电子行业的开发模式,模型开发的优势确实是显而易见的,这也成了行业的主流模式。说起来,在实现某个简单的功能的时候我通常使用代码,使用的模型还是偏少一些。上面是一个查表功能的实现,想让让代码能够做到如此清晰直观,那还是有很大的挑战度的。原创 2023-05-28 20:47:36 · 474 阅读 · 0 评论 -
1723_PolySpace Bug Finder命令行执行探索
在我的工作、学习体验中,命令行的优点在于易于实现自动化同时,方便的调用方式也让多个软件配合协同工作有了很大的便利。或许有人说命令行的操作比较麻烦,但是我倒觉得简单。GUI图形化操作界面自然是有他的优点,简单容易上手就是其中一个很大的特点和优点,这应该也是图形化软件操作这么流行的很重要的一个原因。加上很多软件的界面设计本身就具有一定的美感,这样很多人习惯于图形化的操作也迷恋于图形化的操作。其中标记1处的两个批处理文件为命令行操作的文件,标记2处的文件夹是检测报告的文件夹,标记3画出来的一堆则是配置文件。原创 2023-05-27 17:43:27 · 715 阅读 · 0 评论 -
1722_PolySpace Bug Finder的几种启动方式
MATLAB命令启动是我这次新的一个收获,从这里也可以看出MathWorks已经把自己的产品链在MATLAB的平台上做了很好的集成。工作时间久了总结出一个适用于我自己的一个结论:总想着使用软件的图形化界面而不去学习命令行是懒惰与肤浅的表现。枯燥的命令行有时候确实是能够让工作轻松而愉快,这不是让一个人去装什么大神,而是一种让人从更深层次了解软件、熟悉技术的一种手段。GUI模式是我们工作中常用的,使用的平台是Windows,至于其他的平台没有深入了解。从它的身上我能够看到很大的生产力,这是驱动我学习的动力。原创 2023-05-26 07:30:28 · 712 阅读 · 0 评论 -
1721_MATLAB生成线性等间隔向量
一直以来,想要了解一个大厦是如何建成的我通常会先不去描绘什么图纸,先去仔细了解一块块不同形状的砖瓦,这次自然也不例外。比起":"来说,这个可以说是既灵活强大又有十足的代码范儿,喜欢代码的人我觉得肯定喜欢这种方式。在考虑生成的元素个数时,冒号运算确实是还得多一步的运算。二者各有优势吧,不过接触了这个函数以后,冒号运算很可能会从我的代码中消失了。之前工作中经常遇到使用等间隔矩阵的时候,比如Simulink中一般的查表函数。不过,那时候使用的时候基本上全都是直接老老实实地码字,一个数字一个数字写死。原创 2023-05-25 07:28:09 · 851 阅读 · 0 评论 -
1713_Enable子系统以及Trigger子系统的使用
对于功能进程的调度实现来说,这两个子系统还是比较有用的。虽说写代码实现这样的功能也比较简单,但是能够保证可靠性的同时又给了我们一种可以随时进行仿真验证的方式,基于模型的开发有着很大的优势。C语言中经常会有某段代码或者某个函数在特性的条件下执行的处理需求,在C语言中进行这样的描述也是比较简单的。常用的方式有Enable子系统以及Trigger子系统,一个是在满足某个条件为真的时候执行,还有一个是满足某种信号变化的时候执行。从上面的波形图可以看出,使能的时候输出跟随输入,不使能的时候保持之前的状态。原创 2023-05-18 20:15:27 · 211 阅读 · 0 评论 -
1686_MATLAB处理Excel文件
从图4,5,6中可以看到这些数据的一部分展示(嗯,是的,这里是通过其他的方式从我的博客爬取了一部分信息。我觉得这会是一个很有意思的分析试验。因此,在处理数据的时候最好的方式是把所有的信息在MATLAB中以矩阵的方式处理,处理结束后以矩阵的方式一次性写入。至于这之间的差异,看过三部分的素材之后相信我已经把我能够了解的东西展示了出来,互相对比一下也就能够看出在我理解掌握的角度来看,我到底对这些差异有什么样的体验。关于内容的处理,这跟使用的工具是绑定的,都是MATLAB、Perl或者Python的基本程序设计。原创 2023-04-22 18:05:25 · 1065 阅读 · 0 评论 -
MATLAB中限值模块的使用
限值模块的功能很简单,把输入的信号输出限制在指定的范围内。但是有一个特殊的用法,那就是限值的最大值和最小值相同的时候。如果这样设置,那么输出将会是一个恒定值。 简单的示例子如下: 设置的参数如下: 输出结果如下: 如果设置修改,限值改成相同的数值0.7,输出的结果如下:原创 2017-10-24 18:55:01 · 8373 阅读 · 0 评论 -
使用PolySpace进行模型的检测
使用PolySpace进行代码检测的方法比较基础,其实这个工具也可以用于模型的检测。道理也很容易讲得通,既然可以进行模型的代码生成,那么肯定也就可以对生成的代码进行检测。 先进性代码生成,然后把代码拷贝出来,最后进行代码的分析。这是我以前的做法,倒是也没有太大的问题。不过,后来发现其实还可以更简单一点,那就是利用产品之间已经提供的接口。 比如有如下的模型:原创 2017-08-07 21:11:11 · 13414 阅读 · 0 评论 -
Simulink解析带有系数和偏移量的CAN报文信息
这部分功能我关注的很少,我用到的CAN协议中的因子都是在消息传完之后自己增加。这样,我用到的Simulink仅仅是一个最简单的翻译功能。 有一阵子我觉得带有factor和bias的信号使用Simulink实现就是第一个定标的实现,后来我发现无论我怎么进行定标信息的修正始终出现数据类型的不匹配。直到有一天,随手拽了一个强制数据类型转换的模块实现了代码生成。从代码中,我发现其实定标信息原创 2017-08-02 23:52:29 · 6100 阅读 · 3 评论 -
MATLAB面向对象编程指定类的优先级
前面总结了使用类的时候类的默认优先级,接下来总结练习一下指定类的优先级。 把之前用过的代码修改如下:classA.mclassdef classA properties a; end methods function obj = classA(value) obj.a = value;原创 2017-05-22 22:42:01 · 875 阅读 · 0 评论 -
MATLAB面向对象编程中类的默认优先级
通过简单的测试,我自己总结出来的默认规则是:在MATLAB面向对象编程的类使用中,如果出现同名的方法,那么在调用的过程中MATLAB会采用先入为主的方式来判断其优先级。 通过一个例子简单示范说明,首先定义两个类classA和classB,具体的代码如下:classA:classdef classA properties a; end原创 2017-05-21 23:54:43 · 1000 阅读 · 0 评论 -
MATLAB面向对象编程get与set方法实现
在MATLAB面向对象编程中,set与get分别是重新定义参数设置以及查询功能的方法,类似于Java中类似的功能。在实现方式上,有一点区别差异。另外,在实现方式上,暂时没有发现MATLAB可以直接像eclipse中编辑Java代码那样生成默认的方法。 写一个简单的例子演示set与get功能,创建以下类:classdef GetSetDemo properties原创 2017-05-19 01:18:12 · 4218 阅读 · 1 评论 -
MATLAB面向对象编程属性初始化方法
在MATLAB面向对象编程的类构建中,属性的初始化一般有两种方法:一种是使用构造函数,另一种则是在定义属性的时候初始化。 使用构造函数的例子:classdef DemoClass properties age; hight; end methods function obj = DemoClass原创 2017-05-19 00:38:46 · 6144 阅读 · 0 评论 -
MATLAB面向对象编程import导入信息冲突解决方案
在使用MATLAB面向对象编程的包管理import导入时,如果出现导入的两个包中存在相同的类时就会出现我们期待之外的软件行为。因为,MATLAB的导入遵循的是“先入为主”的生效方式,也就是说后面的导入时无效的。然而,我们在新的一次导入结束后通常希望使用的都是新导入的类。这样,如果不使用合适的处理方式我们的设计目的就无法达成。 在MATLAB包管理import导入的时候,为了避免类似导原创 2017-05-18 23:37:43 · 1256 阅读 · 0 评论 -
MATLAB面向对象编程import导入信息冲突问题
MATLAB中使用import导入信息的时候有时候会遇到一点混乱现象。比如,当我们尝试导入的两个包中存在同名但是内容并不相同的类时,两者肯定是会产生冲突的。那么,导入的类到底以哪个稳准呢? 在之前搭建的包测试环境上做一下测试如下: 从上面的结果看,最终MyClassA是按照Pack1中的类来执行的。而Pack导入要在Pack2之前。由此可见,这种导入过程中并原创 2017-05-18 23:29:47 · 782 阅读 · 0 评论 -
MATLAB面向对象编程import使用
类似于Python以及Java,针对模块库或者包中的内容可以通过import指令进行模块或者功能的导入。这样,可以在一定程度上简化代码,提高可读性。 例如之前在博客中实现的包管理例程,进行一个常用类的导入,可以通过以下方式: 这样,如果直接使用MyClassA即可实现调用Pack1中的类。此时如果要使用Pack2中的类,依然需要指明包。 如果有原创 2017-05-18 23:19:43 · 2724 阅读 · 0 评论 -
MATLAB面向对象编程命名空间的使用
命名空间可以理解为专门的内存分区,在MATLAB面向对象编程中,命名空间通常通过包文件夹来实现。包文件夹是以+开头的,简称为包。 创建以下包结构:├─+Pack1│ MyClassA.m│ MyClassB.m│└─+Pack2 MyClassA.m MyClassB.m Pack1中文件中的代码分别如原创 2017-05-18 01:50:19 · 1441 阅读 · 0 评论 -
MATLAB面向对象编程类和对象的创建
在此之前对面向对象编程了解不多,更不用说MATLAB面向对象编程。不过,在第一份工作的经历中还是遇到过一点使用,只是那时候我还不是很清楚。那一次使用是为了实现Simulink中模型的使用。 今天简单做一个类的构建以及对象的创建。首先实现一个类的定义,代码如下:classdef Person properties name; age;原创 2017-05-16 08:27:34 · 13344 阅读 · 1 评论 -
使用MATLAB加载csv格式数据
类似于文本数据的加载,MATLAB支持直接加载csv格式的数据。假如有以下数据:加载过程如下:>> B = load('data.csv')B = 1 5 3 6 2 4 3 1 4 1 5 9>> BB =原创 2017-05-05 08:35:34 · 13103 阅读 · 0 评论 -
使用MATLAB加载文本数据
体验了pandas数据加载的便捷性之后,突然间发现MATLAB原来也有类似的便捷功能。比如,文本文件data.txt中有如下数据:加载操作如下:>> A = load('data.txt')A = 1 5 3 6 2 4 1 3 5 7 9 8原创 2017-05-05 08:26:28 · 1775 阅读 · 0 评论 -
numpy中的数组运算与MATLAB中相似功能的对比
矩阵运算在一定程度上是为了加速计算过程,而矩阵的元素一致性能够让算法的实现更为容易。通过矩阵运算可以让很多原本需要通过循环才能够完成的运算能够在单步的运算中完成。 几个测试如下:In [26]: data =[[1,5,3],[6,2,4]] In [27]: dataOut[27]: [[1, 5,3], [6, 2, 4]] In [28]: arr1原创 2017-03-31 00:43:35 · 1845 阅读 · 0 评论 -
MATLAB函数参数兼容性提升
使用MATLAB的时候有时候会遇到把文件名称作为参数的时候,不过,通常情况下MATLAB的命令或者函数访问文件的时候需要给出一个带有扩展名的文件名称或者带有完整路径与扩展名的文件名称作为参数。 通常,这种情况自己是十分清楚的,因此使用的时候一般不会有什么问题。不过,如果把程序提供给其他人用的时候出问题的可能性就比较大了。 而一个比较简单的方式就是对文件的扩展名进行一原创 2017-03-30 22:48:21 · 932 阅读 · 0 评论 -
MATLAB的cd函数与cd命令
最初使用MATLAB的时候发现cd可以像Linux的shell命令一样使用,恰好cd又是我会的不多的几个shell命令之一。于是,用得到的时候就各种cd,如果不成功就简单修改摸索一下。那时候我确实是没有看过help,更没有去查比较详细的help文档。不过,后来,我发现很多MATLAB中的命令是命令的同时也是函数。 慢慢地,使用函数的频率是要多余命令多一些。本来这个没有优劣之分,何况原创 2017-03-29 20:20:16 · 47427 阅读 · 0 评论 -
批量修改mat文件中MATLAB mpt数据对象属性
终于还是开始着手好好学习一下MATLAB了!先前工作中这个东西经常用,但是很多时候很多功能的使用全都是凭借试探找到的解决方案。一旦找到了解决方案,基本上也就是在方案的基础上使用,也很少去做一下总结或者是深层次的考虑。或许正是这个原因,每次我处理mat文件的时候总是感觉到头痛,好多东西跟我预想的一直不一致。 最近一段时间简单学习了Java,接触了面向对象的理念。在理解面向对象的模型时原创 2017-03-01 22:53:06 · 5340 阅读 · 0 评论 -
Mac中使用MATLAB进行simulink代码生成
说起来这仅仅算是一点点尝试,多年前我尝试在Ubuntu Linux试用了一下MATLAB感觉体验不是很好,后来我确定Windows平台是学习使用MATLAB的最佳平台。至于Linux和Mac,只能是作其他的考虑使用。不过,那时候我还没有Mac。前阵子在微博上看到了学生党们都已经在Mac上使用MATLAB,最近在MathWorks的官网上看到的图片中也看到了在Mac上运行着的MATLAB,于是想原创 2017-02-19 15:37:49 · 2814 阅读 · 0 评论 -
CMD启动MATLAB并执行脚本小结
欢迎路过的YUAN类朋友相互交流,以下是我的联系方式:Email:[email protected]微信:grey0612关于这部分功能实现的掌握已经是前一段时间的事情了,今天再总结一下最近使用过程中的一点其他的收获。顺便再记录一个测试的例子,就当作知识的温习了。1,在C:\Users\grey\workspace\MATLAB\test下放一个测试脚本my_test.m,原创 2017-01-04 23:33:38 · 11744 阅读 · 0 评论 -
mexw32文件删除异常处理
欢迎路过的YUAN类朋友相互交流,以下是我的联系方式:Email:[email protected]微信:grey0612说起来这个问题其实困扰了我很久,直到现在我也没有弄明白为什么会这样,为什么我瞎试出来的这个方法有效。如果真等哪天我能够说的清楚,我想那个时候我对Windows下的PC程序编译以及运行机理了解的比较透彻了。简单的现象描述:在使用MATLAB的时候,我时常会原创 2017-01-04 22:53:14 · 1695 阅读 · 0 评论 -
斐波那契数列知识小结
欢迎路过的YUAN类朋友相互交流,以下是我的联系方式:Email:[email protected]微信:grey0612之前学习Python的时候第一次认真学习了一下斐波那契数列,也是我第一次认真研究了一下编程语言的基础知识。今天依然从Python入手吧,先把之前完成的斐波那契数列函数实现一下。代码如下: 1 #!/usr/bin/python 2 3原创 2017-01-02 22:44:47 · 2766 阅读 · 0 评论 -
使用MATLAB和Python迭代求解黄金分割
欢迎路过的YUAN类朋友相互交流,以下是我的联系方式:Email:[email protected]微信:grey0612虽说可能使用Python写几段小代码测试一下算法,但是我现在学习的确实是MATLAB的教程。是Mooler老爷子的书籍,MATLAB编程体验。第一个话题是迭代,这在学习Python的时候也是一个比较重要的话题。书中的例子是用MATLAB来实现黄金分割的求原创 2017-01-02 15:05:01 · 1636 阅读 · 0 评论 -
通过CMD启动MATLAB的同时运行M脚本
欢迎路过的YUAN类朋友相互交流,以下是我的联系方式:Email:[email protected]微信:grey0612之前写过一个这个知识点的总结,当时有点疑惑,不知道为什么我测试的时候有时候可以有时候不行。今天终于发现了我之前一直忽略的一个细节,MATLAB中M脚本可以当做一个命令来使用,但是使用的时候是不带有后缀名称的。而MATLAB的命令参数中,-r选项是用于启动的时候运行命原创 2016-12-28 22:27:35 · 8038 阅读 · 0 评论 -
MATLAB实现目录遍历
欢迎路过的YUAN类朋友相互交流,以下是我的联系方式:Email:[email protected]微信:grey0612之前工作中需要实现目录遍历的时候一直依赖于Python的OS模块,后来发现了Perl中的find。在使用MATLAB的时候,如果需要用到目录遍历进行某些处理的时候一般也是借助于这两种工具。今天终于发现,MATLAB也有相应的功能。说起来,MATLAB的功能集原创 2016-12-25 19:34:39 · 3703 阅读 · 1 评论