- 博客(171)
- 资源 (3)
- 收藏
- 关注
原创 044_Standalone App in Matlab中发布独立应用
跟别说,我们MATLAB仙人还提供了默认参数的选项,顿时把这个冒烟测试的例子提升到它不应该有的高度。这个应用的功能超级牛叉,应用可以接受0个或者1个字符串参数,输出你好世界,来自xxx。下面给出一个简单的命令行应用打包的例子,为了展示过程,我们先整一个最简单的TUI应用,然后打包成独立App。文件里面包含了一些关于这个应用的信息,比如如何安装MATLAB Runtime,如何运行这个应用等等。来安装这个应用,但是这个过程太繁琐了,我们可以把这个应用打包成一个安装包,然后一键安装。只要给够钱,牛马们都能干。
2025-01-04 17:19:51
1032
原创 pyinstaller冻结打包多进程程序的bug:无限创建进程直至系统崩溃
这两篇文章都没有提到下面的这个重要问题:采用Pyinstaller冻结打包多进程程序时,必须非常小心。这个技术线在Windows上会有一个非常严重的Bug。直接运行打包后的程序会造成无限创建进程,直到系统崩溃。
2025-01-04 17:14:45
1248
原创 007-构建工具大进步:Amper Amper Amper!
Amper赛高。Amper可以独立运行,也可以作为Gradle插件运行。Amper的配置文件简单,易读。Amper有一个问题就是Repositories的配置,在yaml文件中设置的时候,库还是排在系统默认的三个库的后面……你懂的,我还去提了一个issue……
2024-12-31 19:21:20
1062
原创 006-Jetpack Compose for Android之传感器数据
只有经过了上面两步,才能什么同步Gradle 工程之类的,然后build一下,确认所有的依赖都下载完了。大概我们可以在上方设置一个标签,显示实时得到的最新数据,下方主体部分一个图标,动态更新,显示姿态的变化。打开Androi的Studio,新建一个项目,选择Jetpack Compose模板。这里实现一个动作,双击图表,会弹出一个对话框,让用户输入文件名,然后导出数据。,这个是Compose中的一个组件,用来显示Android原生的View。的组件,这个组件是我们自己写的,用来显示传感器数据。
2024-12-31 19:18:36
939
原创 043_Tcpip Instruments in Matlab中连接和调试采用TCP/IP协议的仪器
设置多路路由,可以同时访问不同网段的仪器。Tcpclient对象是用来连接和调试采用TCP/IP协议的仪器的。回声服务器可以用于测试我们实现的客户端功能。我们也可以构造tcpserver对象,用于接收客户端的请求,留到下回。
2024-12-15 09:58:51
1405
1
原创 042_Unscented Kalman Filter in Matlab无迹卡尔曼滤波
无迹卡尔曼滤波(Unscented Kalman Filter, UKF)是一种基于卡尔曼滤波的非线性状态估计方法,它通过一种称为无迹变换(Unscented Transformation)的方法,将非线性系统的状态估计问题转化为线性系统的状态估计问题,然后使用卡尔曼滤波器进行状态估计。这是一种在线方法,也就是说,它会连续地对系统状态进行估计,而不是像批处理方法那样,一次性处理所有的数据。假设我们对 van der Pol Oscillator 的状态进行观测,但是观测值是带有噪声的。系统的框图如上所示。
2024-12-15 09:55:11
939
原创 041_Compare_Matrix_Squre_Sum_in_MATLAB中矩阵平方和的比较
矩阵平方和的定义是对矩阵中的每一个元素进行平方,然后求和。对于一个矩阵AAAsum∑i1m∑j1nAij2sumi1∑mj1∑nAij2这个平方和计算,在某些机器学习的算法中、或者特殊的优化问题中都会涉及到。进行算法开发,一定要按照基线算法、算法优化的思路来考虑。对算法的效率进行比较,最好选择不同的规模来分析问题。加速比是一个很好的指标,能够直观的看出算法的性能提升。
2024-12-06 00:14:00
957
原创 040_Wave_PDE_In_Matlab求解时变波动方程
当一个偏微分方程,可以写成上述散度形式(Divergence Form),即可以采用有限元方法很方便的求解,这里有一个条件就是方程的系数矩阵必须不包含函数的偏微分(可以包括函数、坐标、时间等变量)。接着,就给出被积函数的整体形式作为函数的第一个参数,并把因变量,只有一个可以省略。代码中唯一个好玩一点点的就是最后的gif生成,当目录下已经有文件的时候,就增加一个编号,这样保证gif文件是新的,当。的形式调用时,就会把图形增加到后面,如果是一个已有的gif,就会发生不希望的情况。
2024-12-06 00:07:48
986
原创 039_SettingsGroup_in_Matlab图形界面的设置选项
首先,我们可以看看Matlab的语言选择,这个选项在Matlab-General下面的最后一个面板,Desktop Language,可以选择Chinese和Engish。在上面的1、2、3、4、5这几个区域的右上角,都有一个小小的三角形,点击这个三角形,可以展开一个菜单,里面有一些设置选项。如果关掉这个80列的选项,就会利用命令行窗口的所有列来显示,如果还是不够显示,就是进行上面这样的标记列范围的换行显示。中,也可以打开一个设置窗口,里面有很多设置选项,可以设置Matlab的界面和GUI的各种行为。
2024-11-23 09:48:40
1360
原创 038_High_Level_Skip_in_Matlab中的高端跳过循环
两种循环方式,for和whilebreakreturncontinue控制循环提前结束和跳过for循环中使用break更加自然while循环中使用break的条件可以合并到while表达式中设计UI的过程中,一定要考虑清楚每个元素的职责,不要让一个元素负责多个职责。
2024-11-23 09:44:34
831
原创 037_Local_Meshing_Control_in_MATLAB中控制局部网格划分
工具箱提供了有限的节点增加方法,通过增加节点来控制局部网格划分。最好还是在分析之初,或者在迭代过程中回到几何创建的过程中,来额外产生边和面,从而控制局部网格划分。
2024-11-18 16:08:19
1094
原创 036_Geometry_Function_In_Matlab中定义偏微分方程求解2D几何区域的函数方法
这个几何形状是PDE求解的区域。也就是说偏微分方程这个区域中取值(初始值和状态值、系数),在区域的边界上设定边界条件。m∂2u∂t2d∂u∂t−∇⋅c∇uaufm∂t2∂2ud∂t∂u−∇⋅c∇uauf或者,方程组m∂2u∂t2d∂u∂t−∇⋅c⊗∇uaufm∂t2∂2ud∂t∂u−∇⋅c⊗∇uauf。
2024-11-14 14:52:15
993
原创 035_Progress_Dialog_in_Matlab中的进度条对话框
这个可以取消的进度条,在实际使用中应该足够保守,仅仅用于那些长时间计算、并且在计算中不允许用户进行其它交互的场合。不然,过于激进地使用模式对话框还是很容易影响用户体验的。
2024-11-14 08:59:00
845
原创 004-Kotlin界面开发快速入水之TicTacToe
这个程序是一个简单的井字棋游戏,我们通过Jetpack Compose来实现了界面,通过Kotlin来实现了逻辑。至于程序的实现细节,源代码的解读,就放在下次。
2024-11-04 19:15:55
1105
原创 034_Structural_Transient_In_Matlab结构动力学问题求解
函数进行可视化,这个函数可以把求解的结果映射到网络结构上,对点、线、面进行着色。当时求解这个问题,在最外面的竖直切面加载了一个静态的固定的力。注意,我们这里设置边界条件的函数,由小写字母开头,而设置好的边界条件的变量,首字母是大写的。这里,因为是一个动态问题,我们实际更想要更好地理解在动态载荷下,结构是如何发生变形和位移的。,这个函数提供了更多的可视化功能,可以对结构的变形、位移、应力、应变等进行可视化。加载的设置方法,类似于边界条件的设置。当这里使用一个函数是, 对函数的输入和输出有固定的要求。
2024-11-02 15:34:12
1219
原创 033_Structure_Static_In_Matlab求解结构静力学问题两套方法
求解静力学问题,求解过程和结果都没有什么让人惊喜的地方。下面,在讨论一个周期加载的问题,这个问题是一个动力学问题。我们就直接用统一建模框架来做。
2024-11-02 12:45:46
1048
原创 003-Kotlin界面开发之声明式编程范式
在深入进行Jetpack Compose的学习之前,我们先通过一个简单的DSL实现,了解了Jetpack Compose的核心思想:通过声明式的DSL来描述界面。这样的方式非常灵活,而且非常容易理解,也非常容易调试。通过这样的方式,我们可以更加专注于界面的结构,而不需要关心界面的构造过程。这个实现的过程中,两个语法糖要自己在大脑里反复转换,最后一个参数是匿名函数,则可以移到括号外面;接受者匿名函数相当是临时定义一个扩展函数。有一点点绕,但是多改改代码,也能够理解。
2024-11-01 15:28:38
967
原创 002-Kotlin界面开发之Kotlin旋风之旅
其他需要掌握的知识,如协程、Kotlin标准库、Kotlin特性等,都是Kotlin的高级特性,对于Compose Desktop的开发这个学习阶段并不是必须的。
2024-10-31 18:14:59
1378
2
原创 001-Kotlin界面开发之Jetpack Compose Desktop学习路径
Compose Desktop是一个非常强大的桌面应用程序框架,它提供了一种现代、简洁、易于使用的方式来构建桌面应用程序。学习Compose Desktop需要掌握Kotlin的基本语法、Jetpack Compose的基础知识、状态管理、布局和修饰符、用户输入的处理、列表、高级主题、测试和应用部署等内容。通过上面的学习过程,就有可能获得对Compose Desktop较深入的理解,并能够构建自己的桌面应用程序。那么,就让我们开始这段……感情……哦不……旅程吧……
2024-10-31 17:12:01
1626
原创 032_Tiledlayout_in_Matlab中的分块图布局
这个方式比之前的subplot函数更加灵活,可以更加方便的绘制多个子图。但是,这个功能在R2019b之后才有,所以需要注意版本的问题。
2024-10-29 11:11:39
1683
原创 031_Arguments_in_Matlab中的函数参数
arguments块中,可以定义输入参数、输出参数、重复输入参数、重复输出参数。可以使用内置的验证函数,也可以自定义验证函数。可以使用结构体的方式来定义命名参数。可以用于抛出错误,error也可以用于抛出错误。
2024-10-29 09:31:20
983
原创 030_Subplot_In_Matlab中多图绘制之subplot函数
当然,从下面的例子可以看到,当有两个子图发生重叠时,就把先绘制的那个子图删除替换成新的子图。这里,先把第一行的两个子图绘制完成后,再绘制第二列的一个子图,这样就把第一行的第二个子图删除了。这里有同样的问题,把上面脚本中子图坐标系的位置稍微调整一下就会发现,当有两个图重叠时,后绘制的图会把先绘制的图覆盖掉。这里比较烦人的就是要手动调整标注(箭头、方框)的位置,而且这个坐标是针对整个图的,不是针对子图的,也就是左小角坐标是。简单的说,子图的编号采取了行先的方式,下面给出一个循环的例子,可以看到,图号按照。
2024-10-28 17:55:17
2412
2
原创 029_Common_Plots_Matlab常见二维绘图
来查看详细的帮助,帮助中通常还有海量的例子来学习如何调用,并且在高版本的Matlab里面,还能打开相应的LiveScript,修改参数查看绘图结果。实际上,我们调用上述绘图函数的时候,可以把第一个参数设置为一个坐标系对象,如果省略这个参数,Matlab会自动调用。用新的工具,可以更加方便的控制坐标系的位置和大小,以及坐标系之间的间距。的参数,可以设置子图的大小,这个参数是一个二维数组,第一个元素是行数,第二个元素是列数。可以通过对句柄的操作,来修改图形的属性,例如颜色,线型,线宽等等。
2024-10-28 17:51:39
996
原创 028_Comma_Separated_List_in_Matlab中的逗号分割列表
这玩意一般都不知道是什么,Comma-separated list,CSL, 虽然,用Matlab的时候天天会用到。这到底是个什么玩意?或者,更进一步,这到底是不是个玩意?每次调用一个参数大于一个的函数时,我们就是用了一个CSL,a.k.a.,逗号分割列表。ans =0 00 0每次我们显式定义一个数组/矩阵/元胞数组时,我们就写了一个或者多个逗号分割列表。ans =1 2 3 34 5 6 7>> {1,2,3}ans =1×3 cell 数组。
2024-10-26 17:38:40
1242
原创 027_UIImage_in_Matlab图形界面开发中的图片
图形在Matlab中是一个矩阵UIImage是Matlab图形界面开发中常用的控件通过imread和imwrite可以读取和保存图形图像也可以存储为mat文件,乃至文本文件,前者通过save和load可以保存和加载图形,后者通过和readmatrix可以保存和加载。
2024-10-26 10:15:32
625
原创 026_Callbacks_in_MATLAB中APP界面回调函数编程实现
回调函数是Matlab GUI和App设计中的一个核心的内容,通过用户注册回调函数,在界面操作时App代码会自动调用相应代码,实现各种功能。回调函数的注册方式有两种:函数句柄和匿名函数。回调函数具体实现方式有三种:全局函数、局部函数和嵌套函数。
2024-10-21 21:09:10
1755
原创 025_Position_Layout_in_Matlab界面布局之设定位置
Position属性对于图形对象来说是一个通用的属性,包括左下角坐标、宽度和高度通过设置Position属性,可以实现uifigure界面的布局通过uistack函数,可以设置组件的Z维度,来实现组件的层次可以直接捕获整个uifigure对象,然后在回调函数中访问uifigure对象的UserData属性,来实现功能。这在有些情况下能够获得一些收益。
2024-10-21 00:10:23
1033
原创 024_Symbolic_Math_in_Matlab符号数学工具箱的使用思路
一定要分离符号计算和数值计算,以免符号计算的低效影响数值计算的效率。fplot函数可以直接绘制符号表达式的图像。符号函数是符号表达式的一种,可以直接调用,定义的方式为。符号表达式可以通过函数转化为函数句柄或者函数文件,这样就可以在数值计算中使用。
2024-10-19 23:52:13
1356
原创 023_Layout_and_Containers_in_Matlab界面布局与容器
uifigure是根容器,其他容器都是它的子容器,通过设置句柄不可见,可以防止gcfgcaclose等函数对App的影响。是唯一的布局容器,通过设置行高、列宽、内边距、间距,可以很容易实现VBox和HBox。uipanel是一个面板容器,可以包含其他控件,可以设置标题、背景颜色等。uitabgroup和uitab是标签页容器,可以包含多个uitab,每个uitab可以包含其他控件。
2024-10-19 14:45:00
1543
原创 022_matrix_dancing_in_Matlab中求解一个超简单的矩阵问题
矩阵定义的两个基本元素是:类型和大小。通过zerosoneseyerand等函数可以定义不同性质的矩阵。矩阵的构造、操作和访问是Matlab的基本操作,也是每次计算的核心流程。通过zerosoneseyerand等函数可以定义不同性质的矩阵。通过等运算符可以对矩阵进行操作。也可以通过.*./.^等运算符对矩阵进行逐元素操作。通过end两个符号来访问矩阵的部分元素就;逻辑索引也非常强大,对部分满足条件的元素进行赋值。通过arguments关键字可以指定输入参数的类型,通过。
2024-10-18 10:42:10
884
原创 021_Thermal_Transient_in_Matlab统一偏微分框架之热传导问题
利用统一框架,求解动态热传导方程的过程与求解静力学方程类似,同样是建立模型、设定参数、求解、可视化结果。不是特别一样的在于,热传导方程的相似参数就只有一个,通过相似性分析,可以简化设定参数的过程,最后结果反应出来的只是时间尺度上的差异。通常而言,α是一个很小的量,因此传热的过程相对来说是比较慢的,通过无量纲化,计算步长比实际时间要小很多。
2024-10-18 10:38:54
841
原创 020_FEM_Meshing_in_Matlab工具箱PDE之网格划分
PDE工具箱提供的网格生成函数最大的优点是非常透明,网格数据结构非常清晰,可以通过model.Mesh来查看网格的各种属性。通过全局控制参数,可以对整个网格进行调整,通过局部控制参数,可以对网格的局部进行调整。通过函数,可以查看网格的质量,找到质量不好的元素,然后通过局部控制参数进行调整。PDE的网格工具功能相对单一,但是对于一般的几何体和相对偏理论的问题,已经足够使用。
2024-10-16 15:56:24
1486
3
原创 019_Baseline_optimization_in_Matlab中考虑优化的基线方法
优化是一个很高大上的词语,但是在实际工作中,优化通常是一个很无趣而平凡的事情。优化算法的基线通常会选择网格搜索和随机搜索。水论文总是要搞点优化,千万别太在意,也别太伤感情,每件事情都有代价,优化一样。
2024-10-14 09:55:36
1066
原创 018_FEA_Structure_Static_in_Matlab三维结构静力学分析
总的来说,这个新的Matlab的PDE工具箱的写法更加面向对象,更加符合现代的编程风格,但是对于老的写法,还是兼容的。求解静力学问题的过程比较清晰,对于处理非常简单相对偏理论的问题,是很容易拿到结果的,并且,各个数据结构相对透明,比如Mesh,节点、单元等信息都可以直接访问。如果要变更边界条件、载荷,来研究灵敏度,也是非常方便的,只需要修改model结构体的属性,然后重新求解就可以了。相应的,如果要做一些优化,也是非常方便的。
2024-10-12 17:28:29
1031
原创 【AI创作组】Matlab中进行符号计算
在MATLAB中,符号定义是进行符号计算的基础。sym和syms命令用于创建符号变量,而subs命令用于符号表达式中的变量替换。MATLAB的符号计算工具箱为用户提供了一套完整的符号数学解决方案。从定义符号变量到复杂的微积分运算,从方程求解到级数求和,Symbolic Math Toolbox都能提供强大的支持。
2024-09-24 23:50:30
1343
原创 【AI创作组】Common Lisp词法闭包
词法闭包和动态作用域各有优势和劣势,选择哪一种取决于具体的应用场景和编程风格。词法闭包更适合需要封装和模块化的场景,而动态作用域则适合需要高度灵活性和动态绑定的场景。在实际编程中,理解和正确使用这两种机制都是非常重要的。
2024-09-22 21:43:50
901
24点游戏程序(自动产生答案)
2024-08-16
Lisp实现的统计代码行数的命令行工具
2024-07-18
Lisp的语言服务LSP,VSCode的插件Alive所需要的lisp软件包,可以用quicklisp安装
2024-07-18
Windows数独游戏:Java FX实现
2022-07-12
JavaFX 图标浏览与搜索软件
2022-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人