MATLAB語言中的assert斷言函式
MATLAB語言沒有系統的斷言函式,但有錯誤報告函式 error 和 warning。由於要求對引數的保護,需要對輸入引數或處理過程中的一些狀態進行判斷,判斷程式能否/是否需要繼續執行。在matlab中經常使用到這樣的程式碼:
if c<0
error(['c = ' num2str(c) '<0, error!']);
end
雖然無傷大雅,可也不好看,如果借用assert函式,就可以寫成
assert(c>=0, ['c = ' num2str(c) '<0 is impossible!']);
雖然系統要多執行一些(後面的引數必須先解釋出來再執行assert函式),但在保證程式可讀性和正確性方面功勞是很大的。當然,如果不想損失效能,直接寫成
assert(c>=0);
即可。
下面給出自定義的assert函式程式碼:
%% 斷言函式 assert % 2011年8月7日23:12:48 [email protected]'an % 在程式中確保某些條件成立,否則呼叫系統 error 函式終止執行。 % 使用示例: % assert(1==1) % assert(1+1==2, '1+1~=2') % assert(x>=low_bounce && x<=up_bounce, 'x is not in [low_bounce, up_bounce]'); % 輸入引數說明: % c - 斷言判斷條件 % msg_str - 斷言失敗時顯示提示內容 function assert(c, msg_str) if c, return; end % 斷言成立,直接返回 if nargin>1 error(['assert failure: ', msg_str]); else error('assert failure: Assertion does not hold!'); end end
相關推薦
MATLAB語言中的assert斷言函式
MATLAB語言沒有系統的斷言函式,但有錯誤報告函式 error 和 warning。由於要求對引數的保護,需要對輸入引數或處理過程中的一些狀態進行判斷,判斷程式能否/是否需要繼續執行。在matlab中經常使用到這樣的程式碼: if c<0 error(['
C語言中assert函式的用法
2)每個assert只檢驗一個條件,因為同時檢驗多個條件時,如果斷言失敗,無法直觀的判斷是哪個條件失敗 不好: assert(nOffset>=0 && nOffset+nSize<=m_nInfomationSize); 好: assert(nOffset >
關於c++語言中的sort函式
關於sort 函式 1.需要包含標頭檔案<algorithm>, 2.若直接用sort函式,一定要開啟他的域 using namespace std; 3.使用該函式需注意sort()包含3個引數 sort(a,b,c)其中a,b,為一個具體的數c可以是一個函式
python-assert斷言函式用法
0.摘要 本文介紹了assert的用法,以及使用assert判斷兩連個array陣列是否相等。 1.斷言函式作用 斷言函式是對錶達式布林值的判斷,要求表示式計算值必須為真。可用於自動除錯。 如果表示式為假,觸發異常;如果表示式為真,不執行任何操作。 2.斷言
關於C語言中的scanf()函式
在《C Primer Plus》中有如下程式碼: ...... while(scanf("%d", &num)) { ... } ...... 當輸入不是整數的時候就停止迴圈 那麼是不是也可以試試這樣呢? ...... while (scanf"%d"
C語言中的Scanf函式常見用法之陷阱總結:
C語言中的Scanf函式常見用法之陷阱總結: // C/C++語言中,scanf函式使用陷阱注意: //常見使用方式一: scanf("%d",&a,&b);----遇到空格或\n或非數字結束 //常見使用方式二: scanf("%s",array);----遇到
Go語言中的init函式
今天來了解一下Go語言中的init函式 Go語言中有兩個保留的函式:main函式和init函式 init函式的特性如下: init函式沒有引數和返回值; init函式不能被其他函式呼叫,只能被Go程式自動呼叫; 一個package中可以包含多個init函式; 一個go檔案
R語言中的scale函式及標準化和歸一化的理解
在不同組資料間存在差異時,經常要進行標準化或者歸一化處理,標準化,歸一化及scale的具體理解見https://blog.csdn.net/tanzuozhev/article/details/50602051,待我日後
C語言中的Sleep函式
Sleep函式: 功 能: 執行掛起一段時間 用 法: unsigned sleep(unsigned seconds); 注意: 在VC中使用帶上標頭檔案#include <windows.h>,在Linux下,gcc編譯器中,使用的標頭
Python assert 斷言函式
使用assert斷言是學習python一個非常好的習慣,python assert 斷言句語格式及用法很簡單。在沒完善一個程式之前,我們不知道程式在哪裡會出錯,與其讓它在執行最崩潰,不如在出現錯誤條件時就崩潰,這時候就需要assert斷言的幫助。本文主要是講as
C語言中的system函式引數詳解
http://blog.csdn.net/pipisorry/article/details/33024727 函式名: system 功 能: 發出一個DOS命令 用 法: int system(char *command); system函式已
C語言中的SYSTEM函式
system函式 是可以呼叫一些DOS命令,比如 system("cls");//清屏,等於在DOS上使用cls命令 下面列出常用的DOS命令,都可以用system函式呼叫: ASSOC 顯示或修改副檔名關聯。 AT 計劃在計算機上執行的命令和程式。 ATTRIB 顯示或更改檔案屬性。 BREAK 設定或清除
C語言中,斷言的使用
標準C中的斷言函式assert(),如果斷言函式的引數為0時將觸發斷言函式的執行,會在執行時程式崩潰。 我從FreeRTOS中學到,FreeRTOS中的斷言函式configASSERT()和標準C中的斷言函式assert()是一樣的, 我們可以重新利用他,下面我用一個簡單的
函式中有多個return?C語言中,一個函式可以有幾個返回值?
在移植wifi的程式碼時,遇到了一些與下面類似的函式,這些函式中有不只一個return,這可是個新鮮的玩意兒: int func (int b) { int a=5; if (a>b) return a; else
linux下C語言中的flock函式用法 .
表頭檔案 #include<sys/file.h> 定義函式 int flock(int fd,int operation); 函式說明 flock()會依引數operation所指定的方式對引數fd所指的檔案做各種鎖定或解除鎖定的動作。此函式
C語言中的time函式總結
程式設計中經常用到時間表達及轉換的函式,它們都定義在time.h庫函式中,在此做一下總結,以方便後續檢視使用。 幾個時間概念: 1:Coordinated Universal Time(UTC): 協調世界時,又稱世界標準時間,也即格林威治標準時間(G
c語言中的assert函式
函式名: assert 功 能: 測試一個條件並可能使程式終止 用 法: void assert(int test); 程式例: #include <assert.h> #include <stdio.h> #include
C語言中static修飾的函式和普通函式的區別
用static修飾的函式,本限定在本原始碼檔案中,不能被本原始碼檔案以外的程式碼檔案呼叫。而普通的函式,預設是extern的,也就是說,可以被其它程式碼檔案呼叫該函式。 在函式的返回型別前加上關鍵字static,函式就被定義成為靜態函式。普通 函式的定義和宣告預設情況下是extern的,但靜
c語言中 gotoxy() 函式的使用
轉自 https://blog.csdn.net/radjedef/article/details/79028329 #include <stdio.h> #include <windows.h> void gotoxy(int x, int y) {
關於C語言中printf函式“輸出歧視”的問題
目錄 關於C語言中printf函式“輸出歧視”的問題 問題描述 探索問題原因 另一種研究方法 問題結論 關於C語言中printf函式“輸出歧視”的問題 問題描述 昨天晚上被問到一個問題,為什麼在同一個printf函式中兩次輸出一個double型變