這一篇博客主要學習了:
第一,自定義函數優點有很多,比如可重復利用;容易糾錯,以后直接裝入大工程里(更重要的是,實參是復制給形參的,在自定義函數中運行時形參獨立顯示,這一點和C不一樣)。
第二,通過help/lookfor 自定義函數名 快速查找到自己所寫的函數(H1注釋行功能)
第三,調試功能
自定義函數代碼:
function distance = dist(x1, y1, x2, y2) %寫在首行 %自定義函數 %腳本文件:dist.m %函數功能: % 該函數用來計算笛卡爾坐標系中兩點之間的距離,兩個點的坐標通過形參輸入(4) % 學習H1注釋行的使用,及函數的調用 %DIST函數:計算計算笛卡爾坐標系中兩點之間的距離 % %應用示例: % res =dist(x1, y1, x2, y2) % % 定義變量: % x1 ---位置1的x坐標 % y2 ---位置2的y坐標 % x1 ---位置1的x坐標 % y2 ---位置2的y坐標 % % 版本記錄: % 日期 負責人 版本描述 % 2015-10-9 10 王茂春 源代碼 % 計算距離 distance = sqrt((x2-x1).^2 + (y2-y1).^2);
調用代碼:
% 腳本文件: test_dist.m % % 目標: 實際調用自定義函數dist % 定義變量: % a1 ---位置a的x坐標 % b2 ---位置b的y坐標 % a1 ---位置a的x坐標 % b2 ---位置b的y坐標 % % 版本記錄: % 日期 負責人 版本描述 % 2015-10-9 10 王茂春 源代碼 %獲取輸入數據 disp('計算笛卡爾坐標系中兩點之間的距離'); ax =input ('輸入位置a的x坐標: '); ay =input ('輸入位置a的y坐標: '); bx =input ('輸入位置b的x坐標: '); by =input ('輸入位置b的y坐標: '); %調用函數 result =dist(ax, ay, bx, by); %輸出結果 fprintf('笛卡爾坐標系中兩點之間的距離是:%f\n',result);
運行效果就不說了,正確。重要的是思想!
--------------------------------------------------------------------------------
第二,通過help查找
通過lookfor查找:
第三,斷點測試:
為了仔細觀察工作區在函數執行前后的變化, 我們將在MATLAB調試器中加載函數dist2
和腳本文件 test_dist2。在函數加載前,加載中,加載后設置斷點(如圖 5.1 所示) 。
當程序中止在函數調用之前的斷點,它的工作區如圖 5.2(a)所示。注意工作區中只有變
量 ax,ay,bx 和 by。當程序中止在函數調用過程中的斷點,它的工作區如圖 5.2(b)所示。
注意工作區中只有變量 x1,x2,y1,y2 和 distance。當程序中止在函數調用后的斷點,它的
工作區如圖 5.2(c)所示。 注意工作區中原來的變量又重復出現, 再加上函數返回的變量 result。
函數加載前:
加載中:
加載后:
所以,這個互相獨立的調試確實很好!學習了