MATLAB-筆記6-關係運算子
Topic: 比較變數關係的符號,輸出的結果是邏輯陣列
翻成白話文其實就是:「表達數列之間的關係(relation)的運算」,輸出的結果是邏輯值,邏輯值只有1、0兩個結果,1代表(敘述為真True);0代表(敘述為假False)
關係運算子為:
舉以下程式為例
翻成白話文其實就是:「表達數列之間的關係(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會錯誤的理由可以想想看,答案在上面↑
留言
張貼留言