Matlab 可以做一些什麼有意思的事?
謝邀,太多了,一些demo,僅供參考。
[原創]旋轉的文字球:滑動滑鼠,控制文字球的旋轉方向[原創]旋轉的文字球:滑動滑鼠,控制文字球的旋轉方向|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)[原創]區域網下使用MATLAB傳送文件
[原創]區域網下使用MATLAB傳送文件|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)[原創]MATLAB之在線音樂試聽
[原創]MATLAB之在線音樂試聽|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)利用Matlab讀取新浪微博關鍵詞數據(部分輿情監測)
利用Matlab讀取新浪微博關鍵詞數據(部分輿情監測)|MATLAB/Simulink 原創精華|MATLAB技術論壇
(出處: MATLAB技術論壇)如何使用MATLAB算星座運勢
如何使用MATLAB算星座運勢|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)[原創]利用MATLAB燃放煙花(禮花)
[原創]利用MATLAB燃放煙花(禮花)|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)[原創]使用matlab自動登錄新浪微博
[原創]使用matlab自動登錄新浪微博|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)
用MATLAB看新聞,告別百度新聞!
用MATLAB看新聞,告別百度新聞!|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)[原創]使用MATLAB模擬鍵盤按鍵[原創]使用MATLAB模擬鍵盤按鍵|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)
MATLAB版天氣預報
MATLAB版天氣預報|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)[原創]讓MATLAB會說話,說出您想說的
[原創]讓MATLAB會說話,說出您想說的|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)[原創]利用Matlab繪製3D文字
[原創]利用Matlab繪製3D文字|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)[原創]matlab繪製滾動點陣字幕(跑馬燈)(2)
[原創]matlab繪製滾動點陣字幕(跑馬燈)(2)|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)用Matlab畫地圖(世界地圖、中國地圖、美國地圖等)
用Matlab畫地圖(世界地圖、中國地圖、美國地圖等)|MATLAB/Simulink 原創精華|MATLAB技術論壇
(出處: MATLAB技術論壇)[原創]使用MATLAB免費發簡訊/郵件/通知
[原創]使用MATLAB免費發簡訊/郵件/通知|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)MATLAB版歷史上的今天
MATLAB版歷史上的今天|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)
[原創]發微博遠程控制MATLAB
[原創]發微博遠程控制MATLAB|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)[原創]Matlab串口通信之實現溫度採集(圖片程序更新中)
[原創]Matlab串口通信之實現溫度採集(圖片程序更新中)|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)[原創]基於MATLAB和Arduino的可控呼吸燈原型
[原創]基於MATLAB和Arduino的可控呼吸燈原型|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)
基於MATLAB的行情軟體MatlabTraderGUI V1.1(Beta版本)
基於MATLAB的行情軟體MatlabTraderGUI V1.1(Beta版本)|MATLAB 程序化交易(量化投資)|MATLAB技術論壇(出處: MATLAB技術論壇)升級更新:簡易畫板GUI程序(EasyPaint by faruto v1.2)
升級更新:簡易畫板GUI程序(EasyPaint by faruto v1.2)|MATLAB 圖形用戶界面(GUI)|MATLAB技術論壇(出處: MATLAB技術論壇)[原創]兒童節送上《小龍人》《天空之城》
[原創]兒童節送上《小龍人》《天空之城》|MATLAB/Simulink 原創精華|MATLAB技術論壇(出處: MATLAB技術論壇)more info see:
FQuantStudio讀博的時候用matlab比較多。閑暇時用matlab做了不少好玩的可視化。1. 可視化程序的系統函數調用。用matlab畫出linux 下strace的輸出。不同的函數用不同的顏色表示;把函數按調用的時間順時針排列;最後將函數之間參數的傳遞用線連起來。這個源碼和文檔還保留的很好,可以到http://home.in.tum.de/~xiaoh/vistrace.html 下載2. 做書的封面之前寫的一個小短篇。拿matlab畫了些桃心,輸出eps, 用latex排了一下版。源碼丟失了。3. 畫海報博士期間開的一個seminar, 做了一個海報。背景中的的正(+) 負(o)樣本的太極圖是用matlab畫的,輸出SVG。源碼丟失了。
http://goo.gl/P7nlH (二維碼自動識別)
———————?,:*:?( ̄▽ ̄)/?:*?°*——————————下面為我最近個人做的一個資訊類免費app做個推廣:歐金所(蘋果/安卓,點右側鏈接下載)歐金所 - 歐洲金融資訊門戶 400個新聞源,20個國家地區,全面追蹤歐元區各國的宏觀經濟和發展趨勢,每小時更新。希望大家支持!【1. Matlab自動生成Word報告】
這幅圖是工作過程中我使用Matlab開發的GUI工具,用於項目評估。其中使用的圖叫做Spider Diagram,又叫Radar Chart.摘抄一段度娘對Radar Chart的介紹:
「雷達圖」分析法是從企業的生產性、安全性、收益性、成長性和流動性等五個方面,對企業財務狀態和經營現狀進行直觀、形象的綜合分析與評價的圖形。因其形狀如雷達的放射波,而且具有指引經營「航向」的作用,故而得名。
1)如何畫Spider Diagram
畫線應該在技術上沒什麼難點,plot幾下,hold on一下,就能畫出Spider Diagram的框架了。但是在如何讓這幅圖完美地融入到GUI界面上這個問題上,要注意,設置這幅圖在GUI界面上的位置,取消圖的右方和上方的邊框,設置圖的背景顏色以及X軸和Y軸的顏色與GUI界面保持一致,Back Color都是[0.94, 0.94, 0.94]。2)如何保存Spider Diagram
剛開始,我打算使用的函數是print或者是saveas函數,但是嘗試之後發現,所生成的圖片跟界面上顯示的效果完全不一樣,一塊白一塊灰的。你們嘗試過後也肯定會發現這個問題。所以,我就嘗試,如何使用Matlab進行截屏。這一步,我使用的是java方面的函數。如果對截屏方面感興趣的朋友,可以在論壇上搜下類似的帖子,很常見的技術。在實現整屏截圖的功能之後,我想實現的是,如何只截取Spider Diagram。其中只需要定義java.awt.Rectangle中的四個參數,分別是坐標原點的x值和y值,已經長度和寬度。但是這其中存在的問題是,java.awt.Rectangle的坐標系其實和GUI界面定義的坐標系是不同的。java.awt.Rectangle的坐標系是自上而下,自左而右。而GUI界面定義時使用的坐標系是自下而上,自左而右。
在解決兩個坐標系轉換的問題之後,就能將截取到的Spider Diagram保存了。3)如何生成word文檔
用matlab去操作word是我這次任務中最大的收穫。因為我從其中看到了太多的用處。下半年我應該需要處理不少報告,通過Matlab來處理,一定能提高不少效率。
關於matlab處理word,這方面的資料,我是在matlab的help中讀的,裡面有一篇詳細的例子來講解如何實現。我簡單的舉三個例子吧。如何選取文字
其中有個參數叫selection,可以設置這個參數的start和end。簡單的理解,就是從哪個字選到哪個字。如何設置段落
其中有個參數叫做paragraphformat,很容易理解這個參數的意思,就是段落格式,可以設置居中,設置段前段後。總之,word里能設置的,matlab里都能設置如何插入表格
插入表格需要使用一個函數叫做,document.Tables.Add,其中需要設置,要插入幾行幾列的表格4)如何在word文檔中插入GUI截屏的圖片
接下來是整個工具的技術難點,整整花了我一天的功夫。
這些問題有點像猜謎語,猜腦經急轉彎。現在反過有來看,似乎看不到任何難點,但是當初真的是繞了不少彎路啊。Matlab中有個函數叫 invoke(Word.Selection,"Paste");這個函數的作用就是,叫剪切板中的內容,粘貼到word中。那麼,接下來問題的關鍵是,如何將png格式的圖片copy到剪切板中。這個問題想了我太久太久了。最初嘗試搜索matlab有沒有自帶這種函數,能否將一個文件copy到剪切板中,再具象一點的效果就是,怎麼用matlab實現,ctrl + C 目標文件。但是我沒有找到答案,如果曉得如何實現的朋友,一定要告訴我啊。最終曲線救國的辦法是,我寫了vbs腳本,對目標文件send key 「^C」。然後通過matlab的dos函數執行了這個vbs腳本。當插完圖片之後,就delete掉這個vbs文件。這就是整個工具最吸引我的三個地方。如果你有興趣,可以關注我的微信公眾號"打浦橋程序員",謝謝
以上圖像處理方面的—蒙太奇效果
詳細內容見blogmatlab圖像特效:蒙太奇效果_li12242_新浪博客========================================================================在github上新建了一個項目,歡迎關注,未來還會繼續優化https://github.com/li12242/mosaic.gitupdate 7.5
考試前寫的有點亂,考完過來完善一下。注意:前方高能,長文多圖,建議在 wifi 模式下瀏覽。為方便瀏覽增加如下目錄,並增加幾個 個人認為比較有意思的東西
目錄如下- 圖像處理(人臉識別)
- 信號處理(語音識別)
- 製作動畫(模擬)
- 製作網頁(幫助文檔)
- 製作遊戲
- 公式、圖形可視化
- 與Word交互(Notebook)
其實 matlab 很萌的,它需要你不斷的調戲它。在你的調教下,它不僅能幫你完成很多事情、提高效率,還能做一些娛樂。
另外,→ →右邊只點收藏不點贊的朋友
------------分割線-----------
- 大二上學期學模式識別的時候,自己動手做了一個人臉識別的GUI界面程序
使用PCA降維和最小距離分類器,分類效果還不錯
演算法比較簡單,有線性代數知識就能理解,這裡不多介紹(如果有一定GUI基礎並且學過線性代數,可以仿照我給出的 demo 自己也實現一個,演算法原理、實驗報告和源碼地址David-Guo/face_recongnize · GitHub 歡迎fork)
所以說 Matlab 最有意思的不是它能幹多少事,而是它能讓你快速上手並實現你想法、點子,開發出你想到的演算法。
- 控制硬體
使用 MATLAB 控制筆記本音效卡,採集人發出的聲音信號,系統識別是數字幾,然後顯示在屏幕上
這個東西目前還在做,所以無法提供源碼
- 進行模擬
去年9月份(( ﹁ ﹁ ) ~→ 還是大二)參加數學建模國賽時,用 MATLAB 做了一個視頻動畫,實時模擬了創意平板摺疊桌的動態展開過程。
效果如下,視頻上傳後有些失真(知乎不能上傳gif動畫實在太讓人不爽了)。源碼有點長,就不貼出來了,暑假了會發布到自己的博客上
創意平板摺疊桌matlab模擬視頻再貼一個繪製 桃心的動畫,跟上面一個回答者做的桃心類似,只不過我改編成了動畫視頻。 想拿去表白的可以自己再在上面加上姓名和一些文字。
matlab 繪製桃心動畫演示視頻源碼在我的個人主頁上:
首頁 · 子辰寫字的地方- 製作網頁
可以做網頁,並用 MATLAB 自帶的瀏覽器查看,就像查看matlab幫助文檔一樣。我曾一度懷疑,matlab幫助文檔就是它的 publish 做出來的,因為效果實在是太像了。
下面是將自己收集到的或者突發奇想解決的一些問題,做成了屬於自己的幫助文檔,方便以後可以回顧。另外,之後的上研討班,交作業和展示基本上都是使用網頁展示
暫時就想到這麼多,個人覺得吧關鍵不是 Matlab 能做什麼有意思的事,而是你能想到什麼有趣的事。然後藉助這個工具實現。- 製作遊戲
在 illovematlab 中文論壇見過一個用 MATLAB 做 Flappy Bird 的,還挺有意思。
下載地址:MATLAB遊戲—覺得這個遊戲還是有點缺陷的,速度太快了。源碼目前還在看,希望能改進,或者加入一些新的特性進去。其實,之前我也一直有用 matlab 做遊戲的想法,一直沒有時間去折騰。
打算放假了實現一個 「神經貓」 的遊戲,感覺應該不會太困難。做完後會過來更新。- 數據可視化
可以很方便的繪製各種各樣的圖像,下面的圖像都是我自己用 matlab 繪製出來的,可以通過略縮圖感受下
matlab 在經過你的調教之後,可以表現出多麼的萌~~~^_^~~~。- 公式可視化
matlab 自帶一個 pretty 函數可以將 符號公式在命令行 列印出來,方便檢查是否自己敲出來的公式是否有錯,但是命令行的顯示也比較醜陋。有人寫了一個 函數 cute 可以自動開啟一個瀏覽器頁面,顯示公式。效果如下:
cute 函數效果:- 與word 交互(Nodtebook)
Notebook可以讓你在 word 文檔中調用 matlab 計算資源,將計算結果和繪製的圖形,自動輸出到 word 文檔中,省去了複製粘貼的繁瑣。讓你更專註於編寫文檔,當然你也可以將測試通過的代碼貼進文檔,一氣呵成的完成報告。
分享一個我用 Notebook 編寫的關於統計建模的文檔。文檔大致介紹了,數學建模中關於數理統計的一些知識。無論你是否參加數學建模,都可以看看這個文檔,寫得非常簡潔詳細,有高中知識即可。如需具體知識,還需系統查看相關書籍。
下載地址:M-book編寫-數理統計基本知識.pdf_免費高速下載效果如下:看完了,有沒有覺得 matlab 萌萌噠,一起來調教它吧MATLAB的彩蛋:
spy
why % (try this multiple times)
load audio48, sound(signal48kHz, Fs48)
lorenz
image
% (bit-shifting the image above gives us...)
defImage = pow2(get(0,"DefaultImageCData"),47);
imgCell = repmat({zeros(size(defImage))},8,7);
for shift = 0:52
imgCell{shift+1} = bitshift(defImage,shift);
end;
allImages = cell2mat(imgCell.");
imshow(allImages,[min(allImages(:)) max(allImages(:))]);
load handel
sound(y,Fs)
penny
shower
xpbombs
fifteen
x=[-2:.001:2],y=(sqrt(cos(x)).*cos(200*x)+sqrt(abs(x))-0.7).*(4-x.*x).^0.01,plot(x,y);
life
我是來騙贊的,前方多圖,慎入!我們不生產糧食,我們只是大自然的搬運工:用MATLAB搭建一個蟻群演算法的迷宮,之前有做過基於MATLAB的蟻群演算法的模擬,但只是模擬出了蟻群活動的曲線,打算把蟻群的動態活動過程體現在尋優的過程中,然後給每隻螞蟻加入自主意識,採用機器學習演算法讓蟻群不斷進化,先建立簡單的二維模型,打算後期加入複雜的三維地形圖,然後擴大蟻群的種群數,建立一個龐大的蟻群帝國,好吧,我又在意淫啦…回家吃藥去了,歡迎各位熟悉蟻群演算法的知友多多指教。
% Cripple Pachebel"s Canon on Matlab
% Have funfs = 44100; % sample rate
dt = 1/fs;T16 = 0.125;
t16 = [0:dt:T16];
[temp k] = size(t16);t4 = linspace(0,4*T16,4*k);
t8 = linspace(0,2*T16,2*k);[temp i] = size(t4);
[temp j] = size(t8);% Modification functions
mod4 = sin(pi*t4/t4(end));mod8 = sin(pi*t8/t8(end));mod16 = sin(pi*t16/t16(end));f0 = 2*146.8; % reference frequency
ScaleTable = [2/3 3/4 5/6 15/16 ...
1 9/8 5/4 4/3 3/2 5/3 9/5 15/8 ...2 9/4 5/2 8/3 3 10/3 15/4 4 ...1/2 9/16 5/8];% 1/4 notesdo0f = mod4.*cos(2*pi*ScaleTable(21)*f0*t4);re0f = mod4.*cos(2*pi*ScaleTable(22)*f0*t4);mi0f = mod4.*cos(2*pi*ScaleTable(23)*f0*t4);fa0f = mod4.*cos(2*pi*ScaleTable(1)*f0*t4);
so0f = mod4.*cos(2*pi*ScaleTable(2)*f0*t4);la0f = mod4.*cos(2*pi*ScaleTable(3)*f0*t4);ti0f = mod4.*cos(2*pi*ScaleTable(4)*f0*t4);do1f = mod4.*cos(2*pi*ScaleTable(5)*f0*t4);re1f = mod4.*cos(2*pi*ScaleTable(6)*f0*t4);mi1f = mod4.*cos(2*pi*ScaleTable(7)*f0*t4);fa1f = mod4.*cos(2*pi*ScaleTable(8)*f0*t4);so1f = mod4.*cos(2*pi*ScaleTable(9)*f0*t4);la1f = mod4.*cos(2*pi*ScaleTable(10)*f0*t4);tb1f = mod4.*cos(2*pi*ScaleTable(11)*f0*t4);ti1f = mod4.*cos(2*pi*ScaleTable(12)*f0*t4);do2f = mod4.*cos(2*pi*ScaleTable(13)*f0*t4);re2f = mod4.*cos(2*pi*ScaleTable(14)*f0*t4);mi2f = mod4.*cos(2*pi*ScaleTable(15)*f0*t4);fa2f = mod4.*cos(2*pi*ScaleTable(16)*f0*t4);so2f = mod4.*cos(2*pi*ScaleTable(17)*f0*t4);la2f = mod4.*cos(2*pi*ScaleTable(18)*f0*t4);ti2f = mod4.*cos(2*pi*ScaleTable(19)*f0*t4);do3f = mod4.*cos(2*pi*ScaleTable(20)*f0*t4);blkf = zeros(1,i);% 1/8 notes
fa0e = mod8.*cos(2*pi*ScaleTable(1)*f0*t8);so0e = mod8.*cos(2*pi*ScaleTable(2)*f0*t8);la0e = mod8.*cos(2*pi*ScaleTable(3)*f0*t8);ti0e = mod8.*cos(2*pi*ScaleTable(4)*f0*t8);do1e = mod8.*cos(2*pi*ScaleTable(5)*f0*t8);re1e = mod8.*cos(2*pi*ScaleTable(6)*f0*t8);mi1e = mod8.*cos(2*pi*ScaleTable(7)*f0*t8);fa1e = mod8.*cos(2*pi*ScaleTable(8)*f0*t8);so1e = mod8.*cos(2*pi*ScaleTable(9)*f0*t8);la1e = mod8.*cos(2*pi*ScaleTable(10)*f0*t8);tb1e = mod8.*cos(2*pi*ScaleTable(11)*f0*t8);ti1e = mod8.*cos(2*pi*ScaleTable(12)*f0*t8);do2e = mod8.*cos(2*pi*ScaleTable(13)*f0*t8);re2e = mod8.*cos(2*pi*ScaleTable(14)*f0*t8);mi2e = mod8.*cos(2*pi*ScaleTable(15)*f0*t8);fa2e = mod8.*cos(2*pi*ScaleTable(16)*f0*t8);so2e = mod8.*cos(2*pi*ScaleTable(17)*f0*t8);la2e = mod8.*cos(2*pi*ScaleTable(18)*f0*t8);ti2e = mod8.*cos(2*pi*ScaleTable(19)*f0*t8);do3e = mod8.*cos(2*pi*ScaleTable(20)*f0*t8);blke = zeros(1,j);% 1/16 notes
fa0s = mod16.*cos(2*pi*ScaleTable(1)*f0*t16);so0s = mod16.*cos(2*pi*ScaleTable(2)*f0*t16);la0s = mod16.*cos(2*pi*ScaleTable(3)*f0*t16);ti0s = mod16.*cos(2*pi*ScaleTable(4)*f0*t16);do1s = mod16.*cos(2*pi*ScaleTable(5)*f0*t16);re1s = mod16.*cos(2*pi*ScaleTable(6)*f0*t16);mi1s = mod16.*cos(2*pi*ScaleTable(7)*f0*t16);fa1s = mod16.*cos(2*pi*ScaleTable(8)*f0*t16);so1s = mod16.*cos(2*pi*ScaleTable(9)*f0*t16);la1s = mod16.*cos(2*pi*ScaleTable(10)*f0*t16);tb1s = mod16.*cos(2*pi*ScaleTable(11)*f0*t16);ti1s = mod16.*cos(2*pi*ScaleTable(12)*f0*t16);do2s = mod16.*cos(2*pi*ScaleTable(13)*f0*t16);re2s = mod16.*cos(2*pi*ScaleTable(14)*f0*t16);mi2s = mod16.*cos(2*pi*ScaleTable(15)*f0*t16);fa2s = mod16.*cos(2*pi*ScaleTable(16)*f0*t16);so2s = mod16.*cos(2*pi*ScaleTable(17)*f0*t16);la2s = mod16.*cos(2*pi*ScaleTable(18)*f0*t16);ti2s = mod16.*cos(2*pi*ScaleTable(19)*f0*t16);do3s = mod16.*cos(2*pi*ScaleTable(20)*f0*t16);blks = zeros(1,k);% Blank Block
blkblock = [blkf blkf blkf blkf blkf blkf blkf blkf...blkf blkf blkf blkf blkf blkf blkf blkf];% Base Melody
cello = [do1f do1f so0f so0f la0f la0f mi0f mi0f...fa0f fa0f do0f do0f fa0f fa0f so0f so0f];% So-FUCKING-Long Melody
violin = [mi2f mi2f re2f re2f do2f do2f ti1f ti1f...la1f la1f so1f so1f la1f la1f ti1f ti1f ...%do2f do2f ti1f ti1f la1f la1f so1f so1f...fa1f fa1f mi1f mi1f fa1f fa1f re1f re1f ...%do1f mi1f so1f fa1f mi1f do1f mi1f re1f...do1f la0f do1f so1f fa1f la1f so1f fa1f...%mi1f do1f re1f ti1f do2f mi2f so2f so1f...la1f fa1f so1f mi1f do1f do2f blkf blke ti1e ...%do2e ti1e do2e do1e ti0e so1e re1e mi1e...do1e do2e ti1e la1e ti1e mi2e so2e la2e...fa2e mi2e re2e fa2e mi2e re2e do2e ti1e...la1e so1e fa1e mi1e re1e fa1e mi1e re1e... %%do1e re1e mi1e fa1e so1e re1e so1e fa1e...mi1e la1e so1e fa1e so1e fa1e mi1e re1e...do1e la0e la1e ti1e do2e ti1e la1e so1e...fa1e mi1e re1e la1e so1e la1e so1e fa1e...%mi1f mi2e blke re2f re2f blkf do1f mi2f mi2f...la2f la2f so2f so2f la2f la2f ti2f ti2f...%do3e blke do2e blke ti1f ti1f blkf la1f do2f do2f...do2f do2f do2f do2f do2f fa2f re2f so2f...%so2e mi2s fa2s so2e mi2s fa2s so2s so1s la1s ti1s ...do2s re2s mi2s fa2s mi2e do2s re2s...mi2e mi1s fa1s so1s la1s so1s fa1s so1s mi1s fa1s so1s...fa1e la1s so1s fa1e mi1s re1s mi1s re1s do1s re1s mi1s fa1s so1s la1s...fa2e la1s so1s la1e ti1s do2s so1s la1s ti1s do2s re2s mi2s fa2s so2s...%mi2e do2s re2s mi2e re2s do2s re2s ti1s do2s re2s mi2s re2s do2s ti1s...do2e la1s ti1s do2e do1s re1s mi1s fa1s mi1s re1s mi1s do2s ti1s do2s...la1e do2s ti1s la1e so1s fa1s so1s fa1s mi1s fa1s so1s la1s ti1s do2s...la2e do2s ti1s do2e ti1s la1s ti1s do2s re2s do2s ti1s do1s la1s ti1s...%%do2e blke blkf ti1e blke blkf la1e blke blkf do2e blke blkf...do1e blke blkf do1e blke blkf do1e blke blkf do1e blke blkf...%blkf so1e blke blkf so1e blke blkf mi1e blke blkf so1e blke...blkf fa1e blke blkf mi1e blke blkf fa1e blke blkf re2e blke...%mi2e mi1e fa1e mi1e re1e re2e mi2e re2e do2e mi1e do1e do2e ti1e so0e fa0e so0e...la0e la1e so1e la1e so1e so0e fa0e so0e do1e la1e so1e la1e ti1e ti0e la0e ti0e...%do1e do2e re2e do2e ti1e ti0e do1e ti0e la0e la1e so1e la1e ti1e ti0e mi1e re1e...do1e do2e re2e fa2e mi2e mi1e so1e mi2e do2e fa2e mi2e fa2e re2e so1e fa1e so1e...%mi1e so1e so1e so1e so1e so1e so1e so1e mi1e mi1e mi1e mi1e mi1e mi1e so1e so1e...fa1e fa1e fa1e do2e do2e do2e do2e do2e do2e do2e la1e la1e so1e so1e re2e ti1e...%%so1e mi2e mi2e mi2e re2e re2e re2e re2e do2e do2e do2e do2e so2e so2e so2e so2e...la2e la2e la2e la2e so2e so2e so2e so2e la2e la2e la2e la2e ti2e ti1e ti1e ti1e...%do2e do1s re1s mi1e do1e ti0e ti1s do2s re2e ti1e la1e la0s ti0s do1e la0e ti0e so1s fa1s mi1e re1e...do1e mi1s re1s do1e fa1e mi1e do1s re1s mi1e so1e fa1e la1s so1s fa1e mi1e re1e so1s fa1s mi1e re1e...%mi1e do2s ti1s do2e mi1e so1e so1s la1s ti1e so1e mi1e do2s re2s mi2e do2e mi2e mi2s re2s do2e ti1e...la1e la1s so1s la1e ti1e do2e mi2s re2s do2e mi2e fa2e do2s ti1s la1e la1e so1e re1e so1e so1e...%so1f so1f so1f so1f do1f do1f do1f so1f...fa1f fa1f so1f so1f fa1f do1f do1f do1e ti0e...%do1f do2f ti1f ti1f la1f la1f so1f so1f...do1f do1e re1e mi1f mi1f do2f do2f ti1f ti1f...%%do2f];% cello
c1 = [cello cello cello cello cello...cello cello cello cello cello...cello cello cello cello cello...cello cello cello cello cello...cello cello cello blkf];% violin1v1 = [blkblock violin blkblock blkblock];% violin2v2 = [blkblock blkblock violin blkblock];% violin3v3 = [blkblock blkblock blkblock violin];% Get dirtys = c1+v1+v2+v3;s = s/max(s);sound(s,fs);
直接粘貼上面代碼 運行
《卡農》代碼出問題的時候,在命令行輸入why就可以獲得答案。
輸入bench可以給電腦跑分。好吧,師兄用Matlab編過一個掃雷程序,曾經風靡我們整個教研室……
從dota2里隨便截一張電狗的圖,就可以把它變成白銀之鴉
原理:電狗和銀鴉的外觀相似,顏色有對應性(青/藍——綠;紫/紅——灰)所以,主要的色彩操作涉及到色調和對比度,具體細節涉及亮度。因此適宜採用windows畫圖的顏色坐標。具體演算法是直接從RGB變換到該坐標,然後進行處理,變換回HSV坐標,並用MATLAB自帶函數變換回RGB。(直接變換回RGB演算法較為複雜)附源代碼x1=importdata("1.bmp");
x2=x1;a=size(x2);ll=a(1);ww=a(2);for i=1:ll for j=1:ww %rgb2xyz r=double(x1(i,j,1))/255; g=double(x1(i,j,2))/255; b=double(x1(i,j,3))/255; x=rgb2hsv([r,g,b]); x=x(1); p=min(min(r,g),b); q=max(max(r,g),b); z=(p+q)/2; if ((z==0)||(z==1)) y=1; else y=(q-p)/2/min(z,1-z); end %processing x=1-x; w=2-6*abs(x-1/2); if (w&>1) w=1; end if (w&<0) w=0; end y=y*w; z=z*(1+(1-w)/2); if (z&>1) z=1; end %xyz2hsv h=x; t=y*min(z,1-z);%(q-p)/2 v=z+t; u=z-t;%new p s=(v-u)/v; rgb=hsv2rgb(h,s,v); x2(i,j,:)=uint8(rgb*255); endendimage(x2)imwrite(x2,"2.bmp","BMP");
我來說一個,這個極大程度刷新了我對MATLAB的認識
就是:Matlab可以和Arduino通信,要知道arduino 是最近比較火的開源硬體啊,兩者連起來玩也是很爽的。特別是現在Matlab出了Arduino支援套件以後,玩起來比以往的串口通信簡單多了。最簡單的常式:用matlab完成一個簡易的usb示波器首先建立arduino和matlab的連接,代碼如下a = arduino("COM3");matlab會用幾秒鐘的時間來建立連接用一個1k歐的可調電阻串聯一個1k歐的電阻。將下面的代碼直接複製到Matlab命令框,即可運行。interval = 10000;passo = 1;t = 1;x = 0;while(t&中二男盆宇會在代碼最後添一行語音,讓程序跑完的時候自己喊一聲「主銀,結束了」……
安卓手機可以安裝Matlab Mobie(iphone 也有適用的app), 可以將手機感測器數據收集並傳輸到PC上。比如運用加速度感測器就可以自己設計計步器啦~
%最炫民族風,聽起來還不錯
%musicminzufs = 44100; % sample ratedt = 1/fs;T16 = 0.125;
t16 = [0:dt:T16];
[temp k] = size(t16);t4 = linspace(0,4*T16,4*k);
t8 = linspace(0,2*T16,2*k);[temp i] = size(t4);
[temp j] = size(t8);% Modification functions
mod4=(t4.^4).*exp(-30*(t4.^0.5));mod4=mod4*(1/max(mod4));mod8=(t8.^4).*exp(-50*(t8.^0.5));mod8=mod8*(1/max(mod8));mod16=(t16.^4).*exp(-90*(t16.^0.5));mod16=mod16*(1/max(mod16));f0 = 2*146.8; % reference frequency
ScaleTable = [2/3 3/4 5/6 15/16 ...
1 9/8 5/4 4/3 3/2 5/3 9/5 15/8 ...2 9/4 5/2 8/3 3 10/3 15/4 4 ...1/2 9/16 5/8];% 1/4 notes
do0f = mod4.*cos(2*pi*ScaleTable(21)*f0*t4);re0f = mod4.*cos(2*pi*ScaleTable(22)*f0*t4);mi0f = mod4.*cos(2*pi*ScaleTable(23)*f0*t4);fa0f = mod4.*cos(2*pi*ScaleTable(1)*f0*t4);
so0f = mod4.*cos(2*pi*ScaleTable(2)*f0*t4);la0f = mod4.*cos(2*pi*ScaleTable(3)*f0*t4);ti0f = mod4.*cos(2*pi*ScaleTable(4)*f0*t4);do1f = mod4.*cos(2*pi*ScaleTable(5)*f0*t4);re1f = mod4.*cos(2*pi*ScaleTable(6)*f0*t4);mi1f = mod4.*cos(2*pi*ScaleTable(7)*f0*t4);fa1f = mod4.*cos(2*pi*ScaleTable(8)*f0*t4);so1f = mod4.*cos(2*pi*ScaleTable(9)*f0*t4);la1f = mod4.*cos(2*pi*ScaleTable(10)*f0*t4);tb1f = mod4.*cos(2*pi*ScaleTable(11)*f0*t4);ti1f = mod4.*cos(2*pi*ScaleTable(12)*f0*t4);do2f = mod4.*cos(2*pi*ScaleTable(13)*f0*t4);re2f = mod4.*cos(2*pi*ScaleTable(14)*f0*t4);mi2f = mod4.*cos(2*pi*ScaleTable(15)*f0*t4);fa2f = mod4.*cos(2*pi*ScaleTable(16)*f0*t4);so2f = mod4.*cos(2*pi*ScaleTable(17)*f0*t4);la2f = mod4.*cos(2*pi*ScaleTable(18)*f0*t4);ti2f = mod4.*cos(2*pi*ScaleTable(19)*f0*t4);do3f = mod4.*cos(2*pi*ScaleTable(20)*f0*t4);blkf = zeros(1,i);% 1/8 notes
do0e = mod8.*cos(2*pi*ScaleTable(21)*f0*t8);re0e = mod8.*cos(2*pi*ScaleTable(22)*f0*t8);mi0e = mod8.*cos(2*pi*ScaleTable(23)*f0*t8);fa0e = mod8.*cos(2*pi*ScaleTable(1)*f0*t8);
so0e = mod8.*cos(2*pi*ScaleTable(2)*f0*t8);la0e = mod8.*cos(2*pi*ScaleTable(3)*f0*t8);ti0e = mod8.*cos(2*pi*ScaleTable(4)*f0*t8);do1e = mod8.*cos(2*pi*ScaleTable(5)*f0*t8);re1e = mod8.*cos(2*pi*ScaleTable(6)*f0*t8);mi1e = mod8.*cos(2*pi*ScaleTable(7)*f0*t8);fa1e = mod8.*cos(2*pi*ScaleTable(8)*f0*t8);so1e = mod8.*cos(2*pi*ScaleTable(9)*f0*t8);la1e = mod8.*cos(2*pi*ScaleTable(10)*f0*t8);tb1e = mod8.*cos(2*pi*ScaleTable(11)*f0*t8);ti1e = mod8.*cos(2*pi*ScaleTable(12)*f0*t8);do2e = mod8.*cos(2*pi*ScaleTable(13)*f0*t8);re2e = mod8.*cos(2*pi*ScaleTable(14)*f0*t8);mi2e = mod8.*cos(2*pi*ScaleTable(15)*f0*t8);fa2e = mod8.*cos(2*pi*ScaleTable(16)*f0*t8);so2e = mod8.*cos(2*pi*ScaleTable(17)*f0*t8);la2e = mod8.*cos(2*pi*ScaleTable(18)*f0*t8);ti2e = mod8.*cos(2*pi*ScaleTable(19)*f0*t8);do3e = mod8.*cos(2*pi*ScaleTable(20)*f0*t8);blke = zeros(1,j);% 1/16 notes
do0s = mod16.*cos(2*pi*ScaleTable(21)*f0*t16);re0s = mod16.*cos(2*pi*ScaleTable(22)*f0*t16);mi0s = mod16.*cos(2*pi*ScaleTable(23)*f0*t16);fa0s = mod16.*cos(2*pi*ScaleTable(1)*f0*t16);
so0s = mod16.*cos(2*pi*ScaleTable(2)*f0*t16);la0s = mod16.*cos(2*pi*ScaleTable(3)*f0*t16);ti0s = mod16.*cos(2*pi*ScaleTable(4)*f0*t16);do1s = mod16.*cos(2*pi*ScaleTable(5)*f0*t16);re1s = mod16.*cos(2*pi*ScaleTable(6)*f0*t16);mi1s = mod16.*cos(2*pi*ScaleTable(7)*f0*t16);fa1s = mod16.*cos(2*pi*ScaleTable(8)*f0*t16);so1s = mod16.*cos(2*pi*ScaleTable(9)*f0*t16);la1s = mod16.*cos(2*pi*ScaleTable(10)*f0*t16);tb1s = mod16.*cos(2*pi*ScaleTable(11)*f0*t16);ti1s = mod16.*cos(2*pi*ScaleTable(12)*f0*t16);do2s = mod16.*cos(2*pi*ScaleTable(13)*f0*t16);re2s = mod16.*cos(2*pi*ScaleTable(14)*f0*t16);mi2s = mod16.*cos(2*pi*ScaleTable(15)*f0*t16);fa2s = mod16.*cos(2*pi*ScaleTable(16)*f0*t16);so2s = mod16.*cos(2*pi*ScaleTable(17)*f0*t16);la2s = mod16.*cos(2*pi*ScaleTable(18)*f0*t16);ti2s = mod16.*cos(2*pi*ScaleTable(19)*f0*t16);do3s = mod16.*cos(2*pi*ScaleTable(20)*f0*t16);blks = zeros(1,k);% Melody by Schau_mal
part0 = [mi1f la0e la0e do1f mi1f ...re1e re1s mi1s re1e do1e re1e do1e la0f ...mi1f la0e la0e do1f mi1f ...so1e re1s mi1s re1e do1e re1e do1e ti0e so0e ...mi1f la0e la0e do1f mi1f ...re1e re1s mi1s re1e do1e re1e do1e la0e so0e ...mi1f la0e la0e do1f mi1f ...so1e mi1e blkf blkf blkf ...];part1 = [la0f la0e so0e la0f la0e do1e ...
do1f re1e do1e la0f la0f ...do1f do1e so0e do1e re1e mi1e so1e ...so1e mi1e re1f mi1f mi1f ...la1e la1e la1e so1e mi1e mi1f do1e ...la0e la0e la0e mi1e re1s mi1s re1e re1f ...mi1e mi1e so1e mi1e re1e mi1e re1e do1e ...la0f so0f la0f la0f ...];part2 = [mi1e mi1e so1e mi1e mi1e so1e so1e la1e ...
do2e la1e so1f la1s do2s la1e la1f ...la0f la0e so0e la0f do1f ...re1e mi1s re1s do1e re1e mi1f mi1f ...la0e la1e la1e so1e re1e mi1s re1s do1e re1e ...mi1f mi1f blke blke blkf ...do1e la0e la0e do1e re1f so0e so0e ...mi1e so1e mi1e re1e do1f do1f ...la0e do1e re1e mi1e re1e do1e so0e mi0e ...la0f la0f blke blke blkf ...];part3 = [la0f la0e so0e la0f do1f ...
re1e mi1s re1s do1e re1e mi1f mi1f ...la0e la1e la1e so1e re1e mi1s re1s do1e re1e ...mi1f mi1f blke blke blkf ...do1e la0e la0e do1e re1f so0e so0e ...mi1e so1e mi1e re1e do1f do1e do1e ...la0e do1e re1e mi1e so1e mi1e mi1e so1e ...la1f la1f la1f la1f ...];part4 = [la1e la1s la1s la1e la1e la1e la1s so1s mi1e re1e ...
re1e re1s re1s mi1e mi1s so1s mi1e mi1s re1s do1e do1s la0s ...la0f la0e so0e la0f la0e do1e ...re1e mi1s re1s do1e re1e mi1f mi1f ...la1e so1e mi1e re1e so1e mi1e re1e do1e ...do1f do1f la0s do1s re1s mi1s re1s do1s la0s do1s];part5 = [do2e do2s do2s la1e la1s la1s so1e so1s so1s mi1e mi1s mi1s ...
re1e mi1s re1s do1e la0s so0s la0s so0s do1s re1s mi1s so1s la1s re2s ...do2f do2f blks blks blks blks do1e re1e ...mi1f mi1f mi1f so1e mi1e ...la1f la1f la1e do1e so1e mi1e ...re1f re1e re1s re1s re1e re1e do1e re1e ...mi1f mi1e mi1s mi1s mi1e re1s do1s ti0e do1s re1s ...mi1f mi1f mi1f so1e mi1e ...do2f la1f la1f la1e do1e ...re1f so1f so1f la1f ...ti1f ti1f ti1f ti1f ...];part6 = [blkf blkf mi1e so1e mi1e so1e ...
mi1f la0e la0s la0s do1f la0e mi1s la0s ...do1e do1s do1s re1e do1s re1s mi1f mi1f ...mi1f la0e la0s la0s so1f re1e re1s re1s ...mi1f mi1f mi1s re1s do1s la0s mi0s re0s mi0s so0s ...do1f la0e la0s la0s re1f so0e so0s so0s ...mi0f so0e so0s so0s do1f do1f ...la0f do1e do1s la0s mi1e mi1s mi1s re1e re1s mi1s ...];% Combination, v1 is complete version, v2 is simple version.
v1 = [part0 part1 part1 part2 part3 part4 part0 part1 part1 part2 part3 part5 part3 part6 part3];v2 = [part0 part1 part1 part2 part3 part5 part3 part6 part3];% Let"s rock ^_^
s = v2;s = s/max(s);sound(s,fs)關注這個問題好久了,自己來說一個。我們可以用MATLAB運行Windows系統命令。比如,一個程序要運行很長時間,而我們又不能一直守在計算機前,這時可以在程序運行完並保存好所需要的結果後在程序的最後一行加上「!shutdown-s」,則程序運行完後自動關機。……摘自《MATLAB高效編程技巧與應用》
MATLAB+一隻激光筆+一台攝像機+一根亞克力桿=一台3D激光掃描儀
更新:本回答相關代碼已上傳我的Github: wyfunique/Image_cartoonlization
====================== 以下為原答案 ========================
用100行以內的MATLAB代碼實現圖片轉換為動漫風格
圖片來自網路,侵刪。
具體的實現原理我寫了篇文章來講解,傳送門:知乎專欄
搜索MATLAB和PS關係時看到這句話:如果PS是美圖秀秀,那麼matlab相當於PS
17年美賽,我們組被水壩折磨的一塌糊塗.....苦於數據精度太差...然而第三天晚上,被自貢菜外賣辣的想上天,大腿隊友哼著小曲兒找到了目標地區的10米精度的GIS數據,幾行代碼把數據transform成合適的矩陣直接塞進MATLAB...左右一個切割前後一個推拉,贊比西河流域數百(或是數千)平方公里的三維地形圖直接帶著高程上的色差炸出來,等高線隨便畫,位置隨你挑,距離隨你算.....那一刻我真的覺得這款軟體太強大了...後悔沒把這樣逆天的辦法寫進論文....真的不後悔學了工科...有空上圖..
推薦閱讀:
※長時間使用MATLAB會導致編程能力下降嗎?
※為什麼不同的東西會有不同的學習曲線,難道不是任何知識都是越深入需要付出越多嗎?
※如何編寫unix 程序防止殭屍進程的出現?
※有中文計算機高級語言嗎?