matlab學習筆記10_3關係運算符和邏輯運算符

一塊兒來學matlab-matlab學習筆記10

10_3關係運算符和邏輯運算符

以爲有用的話,歡迎一塊兒討論相互學習~Follow Me

參考書籍
《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)分別進行"與","或"*,"非"的操做,和運算符獲得的結果一致**數組

    邏輯函數

    all 判斷是否全部元素爲非零數

    在這裏插入圖片描述
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

注意:MATLAB下標索引從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

any 判斷是否有一個向量元素爲非零數

在這裏插入圖片描述

>> 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

exist 查看變量或函數是否存在

在這裏插入圖片描述

在這裏插入圖片描述

find:找出向量或矩陣中非零元素的位置標識

  • 在許多狀況下,都須要對矩陣中符合某一特定條件的元素的位置進行定位,如將某一矩陣中爲零的元素設爲1等。若是這個矩陣的元素很是多,手工修改很是麻煩,靈活運用find函數和各類邏輯及關係運算能夠是實現絕大多數條件的元素定位。find函數的基本用法有k=find(A),[i,j]=find(A),[i,j,v]=find(A),這是個頗有用的邏輯函數,在對數組元素進行查找,替換和修改變化等操做中佔有很是重要的地位。函數

    k=find(A)

  • 此函數返回由矩陣A的全部非零元素的位置標識組成的向量。若是沒有非零元素會返回空值。
    二維數組先尋找列再尋找行
    在這裏插入圖片描述
    三維數組尋找值
    在這裏插入圖片描述學習

    [i,j]=find(A)

  • 此函數返回矩陣A的非零元素的行和列的表示,其中i表明行標而j表明列標。此函數常常用在稀疏矩陣中。在多維矩陣中一般將第一維用i表示,將其他各維做爲第二維,用j表示。
    在這裏插入圖片描述spa

    [i,j,v]=find(A)

  • 此函數返回矩陣A的非零元素的行和列的標識,其中i表明行標而j表明列表,同時,將相應的非零元素的值放入列向量v中,即i和j的值與[i,j]=find(A)取值相同,只是增長了非零元素的值這一項
    在這裏插入圖片描述設計

    利用find()函數實現部分矩陣的替換

    在這裏插入圖片描述

isfinite:確認矩陣元素是否爲有限值

在這裏插入圖片描述

isempty:確認矩陣是否爲空矩陣

  • 不要把空矩陣、零矩陣及矩陣不存在3個概念混淆,空矩陣說明矩陣存在,可是矩陣沒有元素;零矩陣是指矩陣的全部元素都爲零;矩陣不存在是指當前的工做空間中沒有定義此矩陣變量。isempty(A)能夠判斷一個存在的矩陣變量是否爲空矩陣,若是矩陣爲空矩陣則返回邏輯「真",不然返回邏輯「假",一個空矩陣至少有一維是零,如0×0、0×五、0×3×3等。空矩陣沒有任何元素,能夠用函數size(A)來判斷,若是其中有一維爲零,則A就是零矩陣。(由於還有其餘多個維度有可能其中只有方括號可是沒有值)3d

    isequal:判斷幾個對象是否相等

  • isequal(A,B,C...)若是要判斷的全部對象A,B,C...具備相同的類型、大小和內容,對於矩陣來講,就是全部矩陣的維數相同,並且矩陣元素的數值相同,若是知足這樣的條件,此函數返回邏輯「真",反之,只要有一個對象與其餘對象不相同,就會返回邏輯「假"code

    isnumeric:判斷對象是不是數據

  • isnumeric(A)若是是數據矩陣,如稀疏矩陣、雙精度矩陣、複數矩陣等,此函數返回邏輯「真",反之,若是A是字符串、結構體矩陣等,則返回邏輯「假」orm

    其餘邏輯函數

issparse 判斷是否爲稀疏矩陣 isstr 判斷是否爲字符串 islogical 判斷一個矩陣是否爲邏輯矩陣 isfield 判斷對象是否爲某個結構體矩陣的域 isstruct 判斷是否爲結構體 ishandle 判斷是否爲圖像句柄

相關文章
相關標籤/搜索