MATLAB(一)——軟體及基本操作介紹
一、MATLAB軟體介紹
1.matlab的介面
左上角,home標籤下,找到layout進行設定/復位,可以設定各板塊的顯示與隱藏。其中有幾個部分,請務必要顯示
①Current Folder:中文一般翻譯成工作路徑,一般設定成一個自己建立的、有讀寫許可權的資料夾,例如我的文件下建立一個matlab資料夾
②Command Window:字面意思是命令視窗,用來執行程式碼,所有的程式碼都是在這裡輸入
③Workspace:字面意思是工作空間,其實就是暫存所有執行結果的地方,“暫”的具體含義是:關閉matlab後丟失
2.軟體中的基本概念
2.1 函式
matlab之所以強大,就是因為提供大量的函式,你也可以建立自定義函式,方法是:Home->New->function。自定義函式一般儲存在工作路徑下。函式檔案的特徵是:副檔名m,內容的第一行以function開頭,後續內容是“輸出變數=函式名(輸入變數)”。且函式名和檔名相同。每個函式在Command Window中執行,用來完成特定的計算任務,執行方式是輸入“輸出變數=函式名(輸入變數)”,然後按回車。例如有個系統自帶的函式是用來求絕對值的,函式名abs,所以在Command Window裡輸入“a=abs(-1)”,就會顯示運算結果為“a=1”。且運算結果會在Workspace裡出現一個變數a,雙擊後可看到a的值是1。
2.2 指令碼
可以理解為特殊的函式,這種函式內容的開頭沒有function那行,因此沒有輸入、輸出變數,也沒有函式名。副檔名和函式一樣是m,也需要在Command Window裡執行。指令碼都是使用者建立的,方法是:Home->New Script。一般儲存在工作路徑下。指令碼的功能就是完成使用者需要的、複雜的計算任務,通常腳本里會呼叫很多函式。
2.3 GUI
一般翻譯為介面,就是人機互動介面的意思。寫指令碼處理問題的方法有點麻煩,讓人看起來更像是碼農,所以現在很多問題可以通過介面點點滑鼠解決。這時候就需要開啟介面,開啟方法是:在APPS標籤裡可以找到所有已安裝的GUI工具,單擊即可。注意右邊有個小三角可以點開。和函式一樣,使用者也可以自己建立自定義GUI,這部分較為複雜,對新手而言有點遙遠。2.4 toolbox
一般翻譯成工具箱,matlab將功能相近或者應用上自成體系的一組函式和GUI打包成一個toolbox。正版的matlab在購買時,幾乎每一個toolbox都是要單獨收費的,所以toolbox也可以理解為matlab產品的模組,一個工具箱就是一個產品/商品。2.5 simulink
一般用matlab解決問題的過程是:使用者自定義指令碼,在Command Window裡執行指令碼。而指令碼的執行邏輯是順序執行,和一般的程式設計一樣。simulink則提供另一種思路,圖形化程式設計,有點像labview,這種方法很適合於物理模型的模擬,因此有時用“matlab程式設計”和“simulink模擬”強調。使用方法是在home標籤下點選simulink。3.獲得幫助
常用的獲得幫助有四種方法①右上角home標籤裡,有個Help標誌,點開後可以獲得各工具箱/產品的完整幫助文件。新版本中預設使用線上,改用本地幫助的辦法是在home標籤裡,Preferences下的matlab/Help裡選擇installed locally
③在Command Window裡輸入 doc+函式名 來獲得幫助。比如輸入"doc fft"可以獲得離散傅立葉變換函式fft的幫助和範例。這種方法獲得的文件是前兩種方法文件中的部分。當然,前提是你要知道函式名,才能找到幫助。這種方法適合於獲得系統自帶函式的使用說明。
④使用GUI時,通常介面的角落裡有Help,點開可以獲得幫助。這種方法獲得的文件是第一和第二種方法文件中的部分。這種方法適合於獲得系統自帶GUI的使用說明。
這幾種方法中,最常用的是第三種,只要知道自己需要的函式名,就可以用這種方式獲得說明和範例。而實際使用中,一般常用的系統自帶函式,也並不是非常多,大概幾十個?真正需要牢記使用方法的可能就幾個,通常都是知道函式名,要用的時候doc一下。
二、命令視窗的基本配置
1、format命令
進行資料型別轉換,行間距調節等功能時,用
format + 關鍵詞 回車
eg:format long 回車 //將資料變為長整型
format compat/loose 回車 //調節行間距緊密/鬆散
2、clc命令
清屏。即清理當前螢幕上的內容,螢幕上沒有了,但保留在記憶體中了
3、clear命令
刪除某一變數,或清空工作區
clear + 變數名 回車
eg:clear a 回車 //刪除工作區中的c變數
clear或者clear all //清空工作區。建議在剛開啟matlab視窗時先清空一下工作區。
4、whos命令
檢視某變數詳細資訊
4.1 whos 回車 //檢視所有變數資訊
4.2 whos + 變數名 回車 // 檢視該變數詳細資訊
eg:whos a 回車
5、x/ylable命令 //給xy軸加橫縱座標說明
eg:xlable (‘x軸’) 回車
6、disp() //螢幕輸出函式,類似於c語言中的printf()函式
disp函式直接將內容輸出在Matlab命令視窗中,關鍵是看disp函式怎麼把字元和數字在一起進行顯示。
disp(X)函式只有一個輸入,當你有多個字串作為輸入時就會報錯。
例如:
disp('Alice is ' , num2str(12) , ' years old!' );
就會報錯--輸入引數過多。
但是將裡邊的內容用中括號一括就成了一個字串,
例如:
str=['Alice is ' num2str(12) ' years old!'];
disp(str);
上邊這句話也就等價於:
disp=(['Alice is ' num2str(12) ' years old!']);
這就是加中括號的原因,而不是因為num2str(),
因為disp(num2str(12));也是正確的,因為裡邊就只有一個字串。
7、zeros函式 //建立一個全為零元素的陣列
1、B = zeros(n) 返回一個n x n的零矩陣.如果n不是一個標量,將丟擲錯誤。
2、B = zeros(m,n) or B = zeros([m n]) 返回一個m x n的零矩陣。
3、B = zeros(d1,d2,d3...) or B = zeros([d1 d2 d3...]) 返回一個d1-by-d2-by-d3-by-... .的零元素陣列。
4、B = zeros(size(A)) 返回一個和A一樣大小的零陣列。
5、zeros(m, n,...,classname) or zeros([m,n,...] 返回一個型別為classname的m x n x...零陣列。classname可以是下面一些值:double', 'single', 'int8', 'uint8', 'int16', 'uint16', 'int32', or 'uint32'
示例
x = zeros(2,3,'int8');
備註
MATLAB語言 沒有一個 維度 宣告 ; MATLAB 自動為矩陣分配儲存空間。 然而,對於大型矩陣 , MATLAB程式可能會執行得更快 ,如果零函式用於設定一個矩陣,其元素將產生一次 , 或行或列的時間預留儲存空間。例如
x = zeros(1,n);
for i = 1:n
x(i) = i;
end