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 ค่าที่ไม่ซ้ำกันในอาร์เรย์ |