MATLAB-筆記6-關係運算子

Topic: 比較變數關係的符號,輸出的結果是邏輯陣列

翻成白話文其實就是:「表達數列之間的關係(relation)的運算」,輸出的結果是邏輯值,邏輯值只有1、0兩個結果,1代表(敘述為真True);0代表(敘述為假False)

關係運算子為:

關係運算子說明
==等於
~=不等於
<小於
<=小於或等於
>大於
>=大於或等於

舉以下程式為例


  • x<y :是在比較x跟y數值的關係,他吐出的結果[1,0,0],可以發現輸出了一個邏輯陣列
    |心得|: 經過關係運算比較後,輸出邏輯陣列,代表xy陣列中的各個元素事進行逐元比較得到的結果
  • Z=x(x<y): 由於x<y是在告訴電腦哪幾個數值滿足這個關係,如何能得到滿足這個關係的值?則把原數列x符合條件的數值取出
    |心得|:取值可以先求得引數,此處引數透過邏輯陣列取得

比較兩數之間的關係後,可以來想一下如何運用邏輯陣列還有它的限制


  • k=[abs(x)>1] :求得滿足abs(x)>1的邏輯陣列,用來陳述真假,並作為引數
  • z=x(k) :取出了x數列中結果為真(1)的數值,意思就是要求電腦:
    -秀出存在的引數對應的值
    |心得|:此方式作為取出非零數的場合很適用
可以看到k跟w的數值是一樣的,但是為何最後出現錯誤(v=x(w)) ????

這是因為w是一個數值陣列,並不能作為引數

如何轉換成引數?


  • logical(w):將w數列內的元素轉為邏輯性值的1跟0

發展為多維矩陣也是一樣的處理方式


  • logical(B) :將原本的[1,0,0;0,1,0;0,0,1]由數值陣列轉為換為邏輯的[1,0,0;0,1,0;0,0,1]
E會錯誤的理由可以想想看,答案在上面↑

留言

熱門文章