標籤:

MATLAB Live Editor 簡介

All comments and opinions expressed on Zhihu are mine alone and do not necessarily reflect those of my employers, past or present.

本文內容所有內容僅代表本人觀點,和Mathworks無關

什麼是MATLAB Live Editor

MATLAB Live editor是MATLAB的一個新的互動環境。 它是Broswer based的,即和用戶互動的其實是基於Chromium的Browser.基於Browser的技術 能提供給用戶更好的互動體驗。MATLAB Live Editor是MATHWORKS在 MATLAB R2016a 中和App Designer同期推出的新功能。

Live Editor的特點從產品介紹上就可以略見一斑:比如直接在編輯器中內嵌作圖,對MATLAB的函數提供補全和提示功能。

Live Editor還支持文本模式,可以在Live script中做基本的文本編輯,再也不用把說明文字放到注釋裡面,你可以把Code和說明組合成文檔, 後面的例子中我們將舉例說明,這種混合的代碼和結果的方式可以讓工程科學計算的工作流程變得更加流暢

當然這種在編輯器中提供更多內容的互動的方式並不是MW的獨創,類似比如Apple的playground(2016),Mathematica的互動環境從一開始(10幾年前)就把圖片,計算結果就可以內嵌在編輯器中了。

你可以用Live Editor做什麼

Live Editor是一個針對大部分MATLAB用戶的產品,即使是MATLAB新手,也可以使用Live Script來了解MATLAB的基本功能。 Live Editor主要的功能之一是做演算紙,這是對在命令行中進行互動的一種改進,再也不需要在命令行,作圖和腳本之間做切換了。驗算完畢之後,還還可以產生更漂亮的包含計算功能的文檔,該可以轉換成PDF格式分享給非MATLAB用戶;使用MATLAB的老師還可以用Live Editor來做課堂講義,講義內容和演示代碼,演示結果可以無縫的結合在一起。

使用Live Editor做演算紙

在用MATLAB嘗試新的演算法時,通常從Command Line開始,Command Line一個麻煩的地方是,當需要通過plot來觀察結果,每次生產的圖會覆蓋上一次的Figure ,我們不得不用各種方法來保持上次的結果,比如hold on,或者把圖畫在subplot中。

當開發轉到script的時候,plot所生成的結果仍然在獨立的窗口中;我們可以把這個窗口dock在MATLAB主環境中,但是如果遇到需要對一系列的計算作圖時,使用Figure來顯示結果還是捉襟見肘了。script中可以包括文檔,但是必須以注釋的形式,包含注釋的程序通常不是一個好的說明文檔。

Live script的驗算紙可以保持多次的計算結果,一目了然,讓我們在做科學工程計算的時候思想更加的流暢。

下面舉例,我們用Live Editor來嘗試如何從下面這張身份名牌中獲取頭像和名字

首先建立一個Live Script, 叫做livescript_demo.mlx,其中mlx是live script特有後綴,它將命令MATLAB打開一個基於Browser的編輯環境

給我們要做的事情寫一個標題, 點擊左上的方框切換文本和代碼,右上的方塊指定標題

讀取圖片中的字元叫做Optical Character Recognition, 在Google中搜索"MATLAB Optical Character Recognition"返回的第一個結果就是MW的幫助文檔,

直接把這段代碼拷貝到Live Script中看看效果,給個標題叫做Test Sample code of OCR,滑鼠移到代碼部分,選擇Run Section,結果直接出現在右欄

直接把這段代碼用到身份名牌圖片上,建立一個新的Section(插入一個section break),標題叫做Do OCR on ID Card, 先直接顯示結果,表明id_Card的內容,然後再做ocr

發現返回的結果中Text屬性中有識別的內容,把它列印出來,發現它們是用newline隔開的字元串,對它們做strsplit得到cell array結果顯示在左邊

最後再試一試面部提取,在google中搜MATLAB Face Detection,直接從幫助文檔中把代碼拷貝下來,觀察其調用方式,step的第二個參數名字叫做videoFrame,這一定是一張靜態圖片,也許可以直接替換

建立一個新的section,起個名字Extract face image out of ID,把之前讀取的ID圖像對象直接提供給step函數,運行section,成功的在ID卡上找到了人臉的區域,結果如左

到此為止,我們的一個驗算紙式的程序就完成了,它非常適合互動式的探索MATLAB函數的功能,並且讓所有的結果一目了然。最後,我們可以把這個演算紙生產PDF報告或者HTML,方便結果的共享。


推薦閱讀:

基於MATLAB/SIMULINK車載吸附儲氫系統的集總參數模型
MATLAB腳本中的局部函數
MATLAB 高級數據結構連載 2:金融時間序列Financial Time Series (Part B)
[MATLAB R2017a 搶鮮報道] : 自動駕駛工具箱(2)

TAG:MATLAB |