(不定期更新)Matlab學習雜記

2021-08-03 18:56:10 字數 1618 閱讀 2751

由於matlab要作為今後科研的輔助軟體,並且自己為零基礎使用者,所以將學習中需要用到的matlab的知識點,不定期記錄下來。學習過程不夠系統,僅作為記錄。

2017.7.13

1.函式和指令碼的區別:

matlab中有一種檔案叫m檔案,他就是一系列**組成的乙個擴充套件名為.m的檔案,雖然m檔案是簡單的ascii型的文字檔案,但是和其語法和高階語言一樣,是一種程式化的程式語言。

m檔案可分為指令碼檔案(matlab scripts)和函式檔案(matlab functions)。指令碼檔案是包含多條matlab命令的檔案;函式檔案可以包含輸入變數,並把結果傳送給輸出變數,兩者的簡要區別如下:

指令碼檔案

a.多條命令的綜合體

b.沒有輸入、輸出變數

c.使用matlab基本工作空間

d.沒有函式宣告行

函式檔案

a.常用於擴充matlab函式庫

b.可以包含輸入、輸出變數

c.運算中生成的所有變數都存放在函式工作空間

d.包含函式宣告行

e.有固定的格式要求function 輸出變數=函式名稱(輸入變數)

語句;

end;

當函式輸入變數為向量輸入(多輸入)時,輸入形式為[x1,x2,x3...]的一元向量形式;輸出同理。

總結:

指令碼檔案可以理解為簡單的m檔案,指令碼檔案中的變數都是全域性變數。函式檔案是在指令碼檔案的基礎之上多新增了一行函式定義行,其**組織結構和呼叫方式與對應的指令碼檔案截然不同。函式檔案是以函式宣告行「function...」作為開始的,其實質就是使用者往matlab函式庫裡邊新增了子函式,函式檔案中的變數都是區域性變數,除非使用了特別宣告。函式執行完畢之後,其定義的變數將從工作區間中清除。而指令碼檔案只是將一系列相關的**結合封裝,沒有輸入引數和輸出引數,即不自帶引數,也不一定要返回結果。而多數函式檔案一般都有輸入和輸出變數,並見有返回結果。

2.多行注釋快捷鍵:
方法一:if 0     要被注釋的語句  end           方法二:選中ctrl+t
3.參考**:
ps:今日學習了矩陣相關操作以及cat、fopen等函式用法。
(假裝此處有華麗麗的分割線,從這之後可能影象處理方面的問題會記錄的多一些。突然對light field產生了濃厚的興趣)
matlab影象顯示總是白色

imshow是乙個很強大的」**」,顯示影象簡直無所不能,但這其中往往會出現問題。在處理影象時,我們的影象經常是經過了某種運算,為了保證其精度,系統會自動的將uint8型資料型別轉化成double型。

「如果直接執行imshow(i),我們會發現顯示的是乙個白色的影象。這是因為imshow()顯示影象時對double型是認為在0~1範圍內,即大於1時都是顯示為白色,而imshow顯示uint8型時是0~255範圍。而經過運算的範圍在0-255之間的double型資料就被不正常得顯示為白色影象了。

為科研小白的光場學習指導者打call:

不定期更新部落格

也算是乙個真正程式設計生涯的起點,聽說大神都有自己的部落格。csdn部落格主要是作為乙個詳細的記錄場所,類似log的verbose檔,細緻入微,無孔不入,因此可能更新頻率較高,質量也相對較低。我的意思是將csdn這裡的部落格作為日後更加精煉的部落格 比如個人blog站或者github pages 的...

C STL 不定期更新

一 set set的特性是,所有元素都會根據元素的鍵值自動排序,set的元素不像map那樣可以同時擁有實值 value 和鍵值 key set元素的鍵值就是實值,實值就是鍵值。set不允許兩個元素有相同的鍵值。include初始化 int arr 5 set iset arr,arr 5 或者只定義...

Bootrap學習筆記 不定期更新

在ie瀏覽器中執行最新渲染模式http equiv x ua compatible content ie edge 初始化移動端裝置瀏覽顯示name viewport content width device width,initial scale 1 使ie8支援html5元素與 查詢 if lt...