MATLAB 板


LINE

因为有版友私下写信给我.对於合并程式m-file的方法 做个解说. 私以为将自己的心得.作为抛砖引玉. 首先.为什麽小弟总是喜欢用副程式来撰写程式呢? 小弟是读化工的.研读部分属於化工中很特别的一种 程序控制与模拟.而我负责的部份为反应性蒸馏系统. 当我进行蒸馏塔模拟的时候.会有很恐怖的情形. 单板:微分方程式的数目与成分数同外.还得进行温度对气体蒸气压的影响 若果成分数达到4个.板数达到35个板.那麽方程式数目为 35*4 = 140 条微分方程式 = 变数的数目 三条微方+一条总组成 = DAE (微分代数方程式) 用 ode15s 解题器来解 (若果两者不相同.那麽解出来就不会是唯一解.在此不讨论多重稳态) 还不包含能量平衡方程式(有化学反应还得加入反应热) 这样大的程式是很恐怖的.有人说合并挺麻烦.太多看不清. 不过要是一个式子一个式子修改.反而是合并较为容易 而且还得计算热力学模组(NRTL,WILSON,UNIQUAC,UNIFAC等等). 又得增加一个叠代回路...那在修改时就很恐怖了.... 因为要把数据拿出来画图.常用到 " global " (全域变数宣告) 变的很不好改变程式码 那麽我就想.将程式合并出来不就很好吗?不过一开始都弄不起来 (那时候很菜.看到 MATHWORK 的档案交换中心的人写的东西.都觉得他们是怪物 不知道是怎麽并的.还有人写成GUI.真是神 @@a.不过现在还是没改变对他们的 崇拜就是了) 後来成功了.有两点挺重要的.我就直接进入主题吧 1.使用 % ---------------------- 将副程式分出来 2.使用函数握把 @ .才可以顺利求解 范例:function pptex2 握把--> [T,X]=ode45(@test2,[0 10],[0;0]) D=5.2; m=61; a0=346.05; L=10.6; Po2=8; Po1=1; N=(1-0.2.*X(:,2)./a0).^(7) M=(L-X(:,1)./L).^(-1.4) xlswrite('T',T,'T') xlswrite('X',X,'X') xlswrite('M',M,'M') xlswrite('N',N,'N') 分隔--> % ------------------------------------------------------------------ function dx=test2(t,x) D=5.2; m=61; a0=346.05; L=10.6; Po2=8; Po1=1; dx=zeros(2,1); dx(1)=x(2); N=(1-0.2*x(2)/a0)^7; M=(L-x(1)/L)^-1.4; dx(2)=(pi*D^2/(4*m)*0.1)*((Po2*N)-(Po1*M)); 一般利用MATLAB内建的函数使用时.大部分我们在使用的方式是如此的 (这边指使用数值解方面的解题器.非解析解的) [OUTPUT,...]=FUNCTIONNAME( ' FILENAME ' ,CONDITION,FACTOR1,...) ^^^ ^^^ 在MATLAB中有一个使用指令与上面标记起来的用法类似.但是却於使用副程式时 为必须条件.我个人使用时是发现.不使用函数握把时.无法使用副程式 (刚开始觉得自己很菜的原因竟然是不会打小老鼠 囧>) 所以请要使用的同好.使用函数握把吧.并且要将程式与程式之间隔开就是了. --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.118.160.163
1F:推 zhewei:我的方法是一个副程式一个m-file用久了,觉得管理很方便 09/16 22:48
2F:→ zhewei:像未来如果这个function会被其他支程式call的话! 09/16 22:48
3F:→ zhewei:我就会把他放在同一个资料夹内!!(主要是我会到处demo) 09/16 22:49
4F:→ zhewei:这样也不用考虑path的问题!! 09/16 22:49
5F:推 leslielion:顺便问1F一个问题 09/16 23:18
6F:→ leslielion:我也是把副程式写成一个m档..然後在主程式call出来 09/16 23:18
7F:→ leslielion:但我的副程式m档是会自动建立.. 09/16 23:19
8F:→ leslielion:但每次call的时候MATLAB会说找不到m档 09/16 23:20
9F:→ leslielion:请问你有遇过这种情况吗? 09/16 23:20
10F:→ leslielion:7108篇有我之前问的问题 09/16 23:21
11F:推 zhewei:会不会是你的path没有设对? 09/16 23:54
12F:推 leslielion:path没问题..执行第一次会出现找不到的错误讯息 09/16 23:56
13F:→ leslielion:执行第二次就可以成功...很怪...=.= 09/16 23:57
14F:推 zhewei:我也觉得很怪!看看版上的先进们!!知不知道原因为何? 09/18 23:14







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP