當前位置:
首頁 > 最新 > 悲傷不可怕,可怕的是麻木

悲傷不可怕,可怕的是麻木

今天在坐地鐵回家的路上,逛知乎看到一個很有意思問題,「如何用一段簡單的代碼講述一個悲傷的故事」。其中有一位朋友的回答特別令我印象深刻,按Matlab的方式來說,大意是:

x1 = 1;

x2 = 2;

x3 = 3;

......

x100 = 100;

100次逐個變數的定義,這種悲傷,我太理解了。

記得研究生第一學期,有一門課叫Modellbuildung und Simulation,翻譯成中文叫做建模與模擬。這門課有對應的上機課,每節上機課都需要用Matlab完成一道模擬題,完成後每個人還要參加隨堂口 試,從德語,數學模型,Matlab代碼全方位虐你一遍。

我之所以太理解這種悲傷,是因為有一次上機課,要對x1到x6有規律地賦值。那時候的我跟eval函數互不相識,硬生生的寫了六行賦值代碼。到口試環節時,我大致跟助教描述了我代碼的邏輯,本以為相安無事,哪知殺出個德國小哥,說:像你這樣賦值,如果有上百個,怎麼辦?

當場被問尷尬了,又無力反駁,現在回想起來都覺得悲傷。從那時起,我寫代碼的時候,考慮的事情變多了,能用矩陣的地方,盡量不用循環,能批量處理的地方,盡量不徒手干。

悲傷不可怕,可怕的是麻木

回過頭來看,類似悲傷的事何止只是逐個賦值,舉例來說,像Simulink中的Bus Creator的輸入量定義和Bus Selector的輸出量選取,也是悲傷聚集地。用過這兩個模塊的朋友,你們真的了解Bus Creator和Bus Selector嗎?

今天就來聊一聊,如何實現Bus Creator輸入量及Bus Selector輸出量的一鍵定義。

1. Bus Creator輸入量的一鍵定義

當建立Bus Creator的時候,正如圖中顯示的,Input signal都是默認值:signal1,signal2...

GIF/1K

使用過的朋友一定知道如何自定義這些輸入信號的名字,用來區別Bus系統中不同的信號,不然鬼知道系統中的signal1代表的是速度還是溫度。

雙擊Bus Creator輸入端的信號線,就能編輯信號線上的信號名。Bus Creator輸入信號也隨之改變。

GIF/1K

如果這個Bus Creator有100個輸入信號,那我要雙擊多少次滑鼠才能定義完一個Bus Creator的輸入信號?如果模型中又存在100個類似的Bus Creator,情況是不是更加慘烈?在工程項目中,出於模塊化與二次開發的目的,大範圍使用Bus系統優劣並存,使用的便捷程度與創建的繁瑣程度相當。Bus系統的建立難度一旦降低至,那麼就沒有不使用它的理由。

我希望能夠實現,只需要點擊一個按鈕,模型中所有的Bus Creator都能夠自動完成輸入信號的更新。如何實現?

整體實現的邏輯是:

1.獲取Bus Creator輸入埠的連接對象

2.如果該連接對象是埠,就獲取其埠名;如果該連接對象是From,就獲取其GotoTag

3.設置該連接對象的輸出line的名字,為第2步所獲取的信號名

整個過程以Bus Creator的數量為for循環的次數,整體達到的效果大致如下:

GIF/1K

2. Bus Selector輸出量的一鍵定義

當創建Bus Selector時,其中輸入信號為相關的Bus系統中信號的總和,而輸出信號為所選取的信號。

GIF/1K

正如之前所提到的,在工程項目中,碰到一個Bus Selector有幾十乃至上百個輸出信號,似乎並不是什麼稀奇的事。那是否在第一次創建的時候需要一一挑取輸出信號。這個工作相比Bus Creator而言,滑鼠的壓力會輕些,不過眼睛肯定瞎了。更常見的是,如果發現中間某個輸出信號搞錯了或是錯位了,那又是一通忙會。

GIF/1K

我希望能夠實現,只需要點擊一個按鈕,模型中所有的Bus Selector的輸出信號會根據其輸出埠自動添加或更新。

整體實現的邏輯是:

1.獲取Bus Selector輸出埠的連接對象

2.如果該連接對象是埠,就獲取其埠名;如果該連接對象是Goto,就獲取其Gototag

3.將第2步所獲取的信號名在Bus Selector的輸入信號庫中進行匹配,如果配對成功,就選去該信號名作為Bus Selector的輸出信號

整個過程以Bus Selector的數量為for循環的次數,整體達到的效果大致如下:

GIF/1K

以上

GUI

如何通過Matlab做學習界面

Roulette s Secret

Simulink建模

你以為透支身體工作就是實現夢想么?

圖像處理

程序員如何討好女朋友

如何在excel中畫畫

音頻處理

Matlab如何演奏周杰倫的「晴天」

網路爬蟲

Matlab還能看得懂上海房價?

通過Matlab來聊聊上海租房的那些事

純雞湯,無技術

你是否有五年來一直堅持的事?

這個公眾號是什麼鬼?

掌握四點就能學好任何編程語言

如果你有新的想法,可以給我留言,我們互相探討

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 打浦橋程序員 的精彩文章:

TAG:打浦橋程序員 |

您可能感興趣

犯錯不可怕,可怕的是已麻木不仁!
鬼不可怕,可怕的是人!
失去不可怕,可怕的是觸景而傷情
貧窮不可怕,可怕的是絕望
苦不可怕,抱怨才可怕
感冒不可怕,可怕的是併發症!
甲亢不可怕最可怕的是它
分手不可怕,可怕的是冷暴力
貧窮不可怕,可怕的是不夠勤奮
得了抑鬱症不可怕,可怕的是你有病恥感!
胖子不可怕,可怕的是不懂怎麼穿
婚姻不可怕,可怕的是沒有愛情
糖尿病不可怕,可怕的是併發症!再不注意遭罪的還是自己
「笨」並不可怕,可怕的是把笨當借口
孤單並不可怕,可怕的是寂寞
失去的並不可怕,可怕的是心有不甘
渣男不可怕,怕的是你瞎
發燒不可怕,感冒不可怕,可怕的是咳嗽!你還在拚命咳嗽么?
癌症不可怕,可怕是……
死亡不可怕,可怕的是被人遺忘