參考書籍
《matlab 程序設計與綜合應用》張德豐等著 感謝張老師的書籍,讓我領略到matlab的便捷
《MATLAB技術大全》葛超等編著 感謝葛老師的書籍,讓我領略到matlab的高效git
% 示例:關係運算符的用法 format compact % 以緊湊形式的方式輸出,以何種方式輸出的格式化語句應當事先定義 a=[1 2;3 4] b=[1 1;1 1] a>1 a<3 a>=2 a<=2 eq(a,b) %注意a和b的shape應該相同 a==1 %找出a中等於1的元素 a~=b a = 1 2 3 4 b = 1 1 1 1 ans = 0 1 1 1 ans = 1 1 0 0 ans = 0 1 1 1 ans = 1 1 0 0 ans = 1 0 0 0 ans = 1 0 0 0 ans = 0 1 1 1
邏輯運算和邏輯函數在計算機語言中是廣泛存在的,在MATLAB中包含與、或、非、異或4種基本的邏輯運算。邏輯表達式和邏輯函數的值應該爲一個邏輯量「真"或「假"MATLAB系統在給出邏輯運算的結果時,以數值「1」表明邏輯「真",以「0」表明「假",但在判斷一個量是否爲「真」時,以0表明「假",以任意的非零值表明「真"。MATLAB的邏輯運算也是以矩陣爲基本運算單元的。github
**在M文件中,可使用and(A,B)、or(A,B)、not(A)分別進行"與","或"*,"非"的操做,和運算符獲得的結果一致**數組
A=[0 1 2;3 4 5] disp('all(A)') all(A) disp('all(all(A))') all(all(A)) % 按照列進行操做 disp('A>=1') A>=1 disp('all(A>=1)') all(A>=1) % 判斷一個矩陣中的全部元素是否都大於等於1 all(all(A>=1))=1 A = 0 1 2 3 4 5 all(A) ans = 0 1 1 all(all(A)) ans = 0 A>=1 ans = 0 1 1 1 1 1 all(A>=1) ans = 0 1 1
A=[0 1 2;3 4 5] disp('all(A)') % 按照列的殊順序 all(A) disp('all(A,2)') % 按照行的順序 all(A,2) c=rand(1,2,3) all(c) A = 0 1 2 3 4 5 all(A) ans = 0 1 1 all(A,2) ans = 0 1 c(:,:,1) = 0.6787 0.7577 c(:,:,2) = 0.7431 0.3922 c(:,:,3) = 0.6555 0.1712 ans(:,:,1) = 1 ans(:,:,2) = 1 ans(:,:,3) = 1
>> A=[0 1 2; 0 3 4] A = 0 1 2 0 3 4 >> any(A) ans = 0 1 1 >> any(A,2) ans = 1 1
在許多狀況下,都須要對矩陣中符合某一特定條件的元素的位置進行定位,如將某一矩陣中爲零的元素設爲1等。若是這個矩陣的元素很是多,手工修改很是麻煩,靈活運用find函數和各類邏輯及關係運算能夠是實現絕大多數條件的元素定位。find函數的基本用法有k=find(A),[i,j]=find(A),[i,j,v]=find(A),這是個頗有用的邏輯函數,在對數組元素進行查找,替換和修改變化等操做中佔有很是重要的地位。函數
此函數返回由矩陣A的全部非零元素的位置標識組成的向量。若是沒有非零元素會返回空值。
二維數組先尋找列再尋找行
三維數組尋找值
學習
此函數返回矩陣A的非零元素的行和列的表示,其中i表明行標而j表明列標。此函數常常用在稀疏矩陣中。在多維矩陣中一般將第一維用i表示,將其他各維做爲第二維,用j表示。
spa
此函數返回矩陣A的非零元素的行和列的標識,其中i表明行標而j表明列表,同時,將相應的非零元素的值放入列向量v中,即i和j的值與[i,j]=find(A)取值相同,只是增長了非零元素的值這一項
設計
不要把空矩陣、零矩陣及矩陣不存在3個概念混淆,空矩陣說明矩陣存在,可是矩陣沒有元素;零矩陣是指矩陣的全部元素都爲零;矩陣不存在是指當前的工做空間中沒有定義此矩陣變量。isempty(A)能夠判斷一個存在的矩陣變量是否爲空矩陣,若是矩陣爲空矩陣則返回邏輯「真",不然返回邏輯「假",一個空矩陣至少有一維是零,如0×0、0×五、0×3×3等。空矩陣沒有任何元素,能夠用函數size(A)來判斷,若是其中有一維爲零,則A就是零矩陣。(由於還有其餘多個維度有可能其中只有方括號可是沒有值)3d
isequal(A,B,C...)若是要判斷的全部對象A,B,C...具備相同的類型、大小和內容,對於矩陣來講,就是全部矩陣的維數相同,並且矩陣元素的數值相同,若是知足這樣的條件,此函數返回邏輯「真",反之,只要有一個對象與其餘對象不相同,就會返回邏輯「假"code
isnumeric(A)若是是數據矩陣,如稀疏矩陣、雙精度矩陣、複數矩陣等,此函數返回邏輯「真",反之,若是A是字符串、結構體矩陣等,則返回邏輯「假」orm
issparse 判斷是否爲稀疏矩陣 isstr 判斷是否爲字符串 islogical 判斷一個矩陣是否爲邏輯矩陣 isfield 判斷對象是否爲某個結構體矩陣的域 isstruct 判斷是否爲結構體 ishandle 判斷是否爲圖像句柄