MATLAB - ตัวดำเนินการ

ตัวดำเนินการคือสัญลักษณ์ที่บอกให้คอมไพเลอร์ดำเนินการทางคณิตศาสตร์หรือตรรกะเฉพาะ MATLAB ได้รับการออกแบบมาเพื่อทำงานบนเมทริกซ์และอาร์เรย์ทั้งหมดเป็นหลัก ดังนั้นตัวดำเนินการใน MATLAB จึงทำงานได้ทั้งกับข้อมูลสเกลาร์และไม่ใช่สเกลาร์ MATLAB อนุญาตการดำเนินการพื้นฐานประเภทต่อไปนี้ -

  • ตัวดำเนินการเลขคณิต
  • ตัวดำเนินการเชิงสัมพันธ์
  • ตัวดำเนินการทางตรรกะ
  • การดำเนินการ Bitwise
  • ตั้งค่าการทำงาน

ตัวดำเนินการเลขคณิต

MATLAB อนุญาตให้ใช้การคำนวณทางคณิตศาสตร์ได้สองประเภท -

  • การดำเนินการทางคณิตศาสตร์เมทริกซ์
  • การดำเนินการทางคณิตศาสตร์อาร์เรย์

การคำนวณทางคณิตศาสตร์เมทริกซ์เหมือนกับที่กำหนดไว้ในพีชคณิตเชิงเส้น การดำเนินการอาร์เรย์จะดำเนินการโดยองค์ประกอบทั้งในอาร์เรย์มิติเดียวและหลายมิติ

ตัวดำเนินการเมทริกซ์และตัวดำเนินการอาร์เรย์มีความแตกต่างกันโดยสัญลักษณ์จุด (.) อย่างไรก็ตามเนื่องจากการบวกและการลบเหมือนกันสำหรับเมทริกซ์และอาร์เรย์ตัวดำเนินการจะเหมือนกันสำหรับทั้งสองกรณี ตารางต่อไปนี้ให้คำอธิบายสั้น ๆ เกี่ยวกับตัวดำเนินการ -

แสดงตัวอย่าง

ซีเนียร์ ตัวดำเนินการและคำอธิบาย
1

+

การบวกหรือยูนารีบวก A + B จะเพิ่มค่าที่เก็บไว้ในตัวแปร A และ B A และ B ต้องมีขนาดเท่ากันเว้นแต่จะเป็นสเกลาร์ สามารถเพิ่มสเกลาร์ลงในเมทริกซ์ขนาดใดก็ได้

2

-

การลบหรือยูนารีลบ AB ลบค่า B ออกจาก A A และ B ต้องมีขนาดเท่ากันเว้นแต่จะเป็นสเกลาร์ สเกลาร์สามารถลบออกจากเมทริกซ์ขนาดใดก็ได้

3

*

การคูณเมทริกซ์ C = A * B เป็นผลคูณทางพีชคณิตเชิงเส้นของเมทริกซ์ A และ B อย่างแม่นยำยิ่งขึ้น

สำหรับ A และ B ที่ไม่ใช่สเกลาร์จำนวนคอลัมน์ของ A ต้องเท่ากับจำนวนแถวของ B สเกลาร์สามารถคูณเมทริกซ์ขนาดใดก็ได้

4

.*

การคูณอาร์เรย์ A. * B เป็นผลคูณขององค์ประกอบโดยองค์ประกอบของอาร์เรย์ A และ B A และ B ต้องมีขนาดเท่ากันเว้นแต่หนึ่งในนั้นจะเป็นสเกลาร์

5

/

สแลชหรือเมทริกซ์หารขวา B / A ใกล้เคียงกับ B * inv (A) แม่นยำยิ่งขึ้น B / A = (A '\ B') '

6

./

อาร์เรย์แบ่งด้านขวา A./B คือเมทริกซ์ที่มีองค์ประกอบ A (i, j) / B (i, j) A และ B ต้องมีขนาดเท่ากันเว้นแต่หนึ่งในนั้นจะเป็นสเกลาร์

7

\

แบ็กสแลชหรือเมทริกซ์หารซ้าย ถ้า A เป็นเมทริกซ์กำลังสอง A \ B จะใกล้เคียงกับ inv (A) * B ยกเว้นจะคำนวณด้วยวิธีอื่น ถ้าเป็นรูป n โดย n เมทริกซ์และ B เป็นเวกเตอร์คอลัมน์ที่มีส่วนประกอบ n หรือเมทริกซ์ที่มีคอลัมน์ดังกล่าวหลายแล้ว X = A \ B เป็นวิธีการแก้สมการAX = B ข้อความเตือนจะปรากฏขึ้นหาก A มีขนาดไม่ดีหรือเกือบเป็นเอกพจน์

8

.\

การแบ่งอาร์เรย์ด้านซ้าย A. \ B คือเมทริกซ์ที่มีองค์ประกอบ B (i, j) / A (i, j) A และ B ต้องมีขนาดเท่ากันเว้นแต่หนึ่งในนั้นจะเป็นสเกลาร์

9

^

กำลังเมทริกซ์ X ^ p คือ X ยกกำลัง p ถ้า p เป็นสเกลาร์ ถ้า p เป็นจำนวนเต็มกำลังจะคำนวณโดยกำลังสองซ้ำ ถ้าจำนวนเต็มเป็นลบ X จะกลับด้านก่อน สำหรับค่าอื่น ๆ ของ p การคำนวณจะเกี่ยวข้องกับค่าลักษณะเฉพาะและค่าลักษณะเฉพาะเช่นถ้า [V, D] = eig (X) แล้ว X ^ p = V * D. ^ p / V

10

.^

พลังงานอาร์เรย์ A. ^ B คือเมทริกซ์ที่มีองค์ประกอบ A (i, j) ต่อกำลัง B (i, j) A และ B ต้องมีขนาดเท่ากันเว้นแต่หนึ่งในนั้นจะเป็นสเกลาร์

11

'

เมทริกซ์ทรานสโพส A 'คือทรานสโพสพีชคณิตเชิงเส้นของ A. สำหรับเมทริกซ์เชิงซ้อนนี่คือทรานสโพสคอนจูเกตเชิงซ้อน

12

.'

การเปลี่ยนอาร์เรย์ ก. ' คือการเปลี่ยนอาร์เรย์ของ A สำหรับเมทริกซ์ที่ซับซ้อนสิ่งนี้ไม่เกี่ยวข้องกับการผันคำกริยา

ตัวดำเนินการเชิงสัมพันธ์

ตัวดำเนินการเชิงสัมพันธ์ยังสามารถทำงานได้ทั้งข้อมูลสเกลาร์และไม่ใช่สเกลาร์ ตัวดำเนินการเชิงสัมพันธ์สำหรับอาร์เรย์ทำการเปรียบเทียบองค์ประกอบโดยองค์ประกอบระหว่างอาร์เรย์สองอาร์เรย์และส่งคืนอาร์เรย์ตรรกะที่มีขนาดเท่ากันโดยกำหนดองค์ประกอบเป็นตรรกะ 1 (จริง) โดยที่ความสัมพันธ์เป็นจริงและองค์ประกอบตั้งค่าเป็น 0 ตรรกะ (เท็จ) โดยที่เป็น ไม่.

ตารางต่อไปนี้แสดงตัวดำเนินการเชิงสัมพันธ์ที่มีอยู่ใน MATLAB -

แสดงตัวอย่าง

ซีเนียร์ ตัวดำเนินการและคำอธิบาย
1

<

น้อยกว่า

2

<=

น้อยกว่าหรือเท่ากับ

3

>

มากกว่า

4

>=

มากกว่าหรือเท่ากับ

5

==

เท่ากับ

6

~=

ไม่เท่ากับ

ตัวดำเนินการทางตรรกะ

MATLAB มีตัวดำเนินการและฟังก์ชันลอจิคัลสองประเภท -

  • องค์ประกอบที่ชาญฉลาด - ตัวดำเนินการเหล่านี้ทำงานกับองค์ประกอบที่สอดคล้องกันของอาร์เรย์ตรรกะ

  • ลัดวงจร - ตัวดำเนินการเหล่านี้ทำงานบนสเกลาร์และนิพจน์เชิงตรรกะ

ตัวดำเนินการเชิงตรรกะที่ชาญฉลาดขององค์ประกอบจะดำเนินการทีละองค์ประกอบบนอาร์เรย์ตรรกะ สัญลักษณ์ &, | และ ~ คือตัวดำเนินการอาร์เรย์ตรรกะ AND, OR และ NOT

ตัวดำเนินการทางลอจิคัลลัดวงจรอนุญาตให้มีการลัดวงจรในการดำเนินการทางตรรกะ สัญลักษณ์ && และ || เป็นตัวดำเนินการลัดวงจรเชิงตรรกะ AND และ OR

แสดงตัวอย่าง

การดำเนินการ Bitwise

ตัวดำเนินการ Bitwise ทำงานบนบิตและดำเนินการแบบบิตต่อบิต ตารางความจริงสำหรับ &, | และ ^ มีดังนี้ -

q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

สมมติว่า A = 60; และ B = 13; ตอนนี้ในรูปแบบไบนารีจะเป็นดังนี้ -

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

ก | B = 0011 1101

ก ^ B = 0011 0001

~ A = 1100 0011

MATLAB มีฟังก์ชั่นที่หลากหลายสำหรับการดำเนินการแบบ bit-wise เช่นการดำเนินการ 'bitwise และ', 'bitwise หรือ' และ 'bitwise not' การทำงานแบบ shift

ตารางต่อไปนี้แสดงการดำเนินการระดับบิตที่ใช้กันทั่วไป -

แสดงตัวอย่าง

ฟังก์ชัน วัตถุประสงค์
บิตและ (a, b) บิตฉลาด AND ของจำนวนเต็มaและb
bitcmp (ก) ส่วนเสริมที่ชาญฉลาดของไฟล์
bitget (a, pos) รับบิตที่ระบุตำแหน่งPOSในจำนวนเต็มอาร์เรย์
บิตเตอร์ (a, b) บิตฉลาดหรือของจำนวนเต็มaและb
บิตเซ็ต (a, pos) ชุดบิตในสถานที่เฉพาะเจาะจงPOSของ
บิตชิฟต์ (a, k) ผลตอบแทนเลื่อนไปทางซ้ายโดยkบิตเทียบเท่ากับการคูณด้วย 2 k ค่าลบของ k สอดคล้องกับการขยับบิตไปทางขวาหรือหารด้วย 2 | k | และปัดเศษเป็นจำนวนเต็มที่ใกล้ที่สุดไปทางลบไม่มีที่สิ้นสุด บิตล้นใด ๆ จะถูกตัดทอน
bitxor (a, b) XOR ที่ชาญฉลาดของจำนวนเต็มaและb
swapbytes สลับการสั่งซื้อไบต์

ตั้งค่าการทำงาน

MATLAB มีฟังก์ชั่นต่างๆสำหรับการดำเนินการเซ็ตเช่นยูเนี่ยนจุดตัดและการทดสอบสำหรับสมาชิกเซ็ตเป็นต้น

ตารางต่อไปนี้แสดงการดำเนินการชุดที่ใช้กันทั่วไป -

แสดงตัวอย่าง

ซีเนียร์ ฟังก์ชั่นและคำอธิบาย
1

intersect(A,B)

กำหนดจุดตัดของสองอาร์เรย์ ส่งคืนค่าทั่วไปของทั้ง A และ B ค่าที่ส่งคืนจะเรียงตามลำดับ

2

intersect(A,B,'rows')

ถือว่าแต่ละแถวของ A และแต่ละแถวของ B เป็นเอนทิตีเดียวและส่งคืนแถวที่ใช้ร่วมกันทั้ง A และ B แถวของเมทริกซ์ที่ส่งคืนจะเรียงตามลำดับ

3

ismember(A,B)

ส่งคืนอาร์เรย์ที่มีขนาดเท่ากับ A โดยมี 1 (จริง) ซึ่งพบองค์ประกอบของ A ใน B ที่อื่นจะส่งกลับ 0 (เท็จ)

4

ismember(A,B,'rows')

ถือว่าแต่ละแถวของ A และแต่ละแถวของ B เป็นเอนทิตีเดียวและส่งกลับเวกเตอร์ที่มี 1 (จริง) โดยที่แถวของเมทริกซ์ A เป็นแถวของ B ด้วยที่อื่นจะส่งกลับ 0 (เท็จ)

5

issorted(A)

ส่งคืนตรรกะ 1 (จริง) หากองค์ประกอบของ A อยู่ในลำดับที่เรียงลำดับและตรรกะ 0 (เท็จ) มิฉะนั้น อินพุต A สามารถเป็นเวกเตอร์หรืออาร์เรย์ของเซลล์แบบ N-by-1 หรือ 1-by-N ของสตริงA is considered to be sorted if A และผลลัพธ์ของการเรียงลำดับ (A) มีค่าเท่ากัน

6

issorted(A, 'rows')

ส่งคืนตรรกะ 1 (จริง) ถ้าแถวของเมทริกซ์สองมิติ A อยู่ในลำดับที่เรียงลำดับและตรรกะ 0 (เท็จ) มิฉะนั้น Matrix A is considered to be sorted if A และผลลัพธ์ของการเรียงลำดับ (A) มีค่าเท่ากัน

7

setdiff(A,B)

ตั้งค่าความแตกต่างของสองอาร์เรย์ ส่งคืนค่าใน A ที่ไม่อยู่ใน B ค่าในอาร์เรย์ที่ส่งคืนอยู่ในลำดับที่เรียงลำดับ

8

setdiff(A,B,'rows')

ถือว่าแต่ละแถวของ A และแต่ละแถวของ B เป็นเอนทิตีเดียวและส่งคืนแถวจาก A ที่ไม่อยู่ใน B แถวของเมทริกซ์ที่ส่งคืนจะเรียงตามลำดับ

ตัวเลือก "แถว" ไม่รองรับอาร์เรย์เซลล์

9

setxor

ตั้งค่าเฉพาะหรือสองอาร์เรย์

10

union

ตั้งค่าการรวมกันของสองอาร์เรย์

11

unique

ค่าที่ไม่ซ้ำกันในอาร์เรย์