Senin, 09 Januari 2017

Manipulasi Index Matriks


MANIPULASI INDEKS MATRIKS

Dalam vektor ataupun matriks, indeks digunakan untuk menunjuk satu/beberapa elemen dari vektor/matriks. Indeks dituliskan di dalam tanda kurung () dengan pola umum sebagai berikut.

Untuk vektor :
nama_vektor(indeks)
Untuk matriks :
nama_matriks(indeks_baris, indeks_kolom)
Dalam suatu vektor, elemen pertama diberi indeks = 1, sementara dalam matriks, indeks menunjukkan nomor baris dan nomor kolom dari elemen yang ingin ditunjuk.



3.1. Operator Titik Dua

Kita juga bisa mengambil beberapa baris dan kolom sekaligus dari suatu matriks dengan operator titik-dua (:). Dalam hal ini tanda titik-dua berarti “sampai dengan”. Misalkan untuk mengambil elemen ke-1 sampai ke-3 dari vektor_ini

>> vektor_ini(1:3) 
ans = 1 3 5

Mengembil elemen ke-3 sampai ke-5 dari vector_itu

>> vektor_itu(3:5) ans = 


5

Mengambil elemen baris ke-1 sampai ke-2, kolom sampai ke-3 matrix.

>> matrix(1:2,2:3) 
ans = 
20 30 
50 60

Dalam hal ini tanda titik-dua bias berarti “seluruhnya”. Misalkan untuk mengambil seluruh elemen dari vektor_ini

>> vektor_ini(:) 
ans = 
1 3 5 7 9

Mengambil seluruh baris dan kolom dari matrix

>> matrix(:,:) 
ans = 
10 20 30 
40 50 60 
70 80 90

Mengambil seluruh elemen di baris ke-1 dari matrix

>> matrix(1,:) 
ans = 
10 20 30

Mengambil seluruh elemen di kolom ke-2 dari matrix

>> matrix(:,2)

ans = 
20 
50 
80

Mengambil seluruh elemen di kolom ke-2 dan ke-3 dari matrix

>> matrix(:,2:3) 
ans = 
20 30 
50 60 
80 90

Dengan menggunakan indeks, kita bisa mengubah nilai elemen matriks yang telah ada.

>> vektor_ini(1)=1000 
vektor_ini = 1000 3 5 7 9 
>> vektor_itu(2:4)=[-1; –1; –1] 
vektor_itu = 
9
-1 
-1
-1 
5
>> matrix(3,:)=100*ones(1,3) 
matrix = 
10 20 30 
40 50 60 
100 100 100

3.2. Membuat Deret

Deret bilangan merupakan hal yang kerap kita temui dalam pengolahan data, terutama berkaitan dengan plot data dan proses iterasi (perhitungan berulang-ulang). Misalkan kita memiliki data tegangan suatu baterai pada setiap menit selama 1 jam. Dalam menyajikan data “waktu”, kita harus membuat vector berisi deret. Kita tentunya bisa melakukannya secara manual seperti ini :
>> time=[1, 2, 3, 4, …, 60]

Tetapi akan lebih efisien jika deret diciptakan menggunakan operator titik-dua. Formulanya adalah :

deret = nilai_awal : inkremen : nilai_akhir

Inkremen harus bilangan bulat positif atau negatif khusus untuk inkremen = 1:

deret = nilai_awal : nilai_akhir

Sehingga kita bisa tuliskan

>>time = 1:60


PENTING

Bedakan operator titik-dua untuk manipulasi indeks matriks dengan operator titik-dua untuk membuat deret. Untuk membedakannya ingatlah selalu bahwa indeks selalu berada di dalam tanda kurung ().

Di dalam Matlab, pembuatan deret juga bisa digunakan dengan command berikut ini.


a. linespace(a,b,n), Membuat vektor baris berisi n titik yang terpisah merata secara linear antara a dan b
b. logspace(a,b,n), Membuat vektor baris berisi n titik yang terpisah merata secara logaritmik antara 10^a dan 10^b. Command ini biasa digunakan untuk menghitung respon frekuensi suatu sistem.

3.3. Membentuk Ulang Matriks

Terdapat beberapa command yang bias digunakan untuk menukar, merotasi, dan menyusun kembali elemen matriks.
a. fliplr(A), menukar posisi elemen matriks A secara melintang, yaitu sebelah kiri ditukar dengan sebelah kanan.
b. flipud(A), Menukar posisi elemen matriks A secara membujur, yaitu sebelah atas ditukar dengan sebelah bawah.
c. rot90(A), Merotasi posisi elemen matriks A berlawanan arah jarum jam sejauh 90 derajat.

d. reshape(A,m,n), Menyusun ulang elemen matriks A menjadi berukuran mxn. Harus diingat bahwa jumlah elemen A harus sama dengan mxn.

Contoh :


      1. Buatlah deret berikut ini dengan operator titik-dua, linspace, dan logspace :
x = -10, -9, -8, ... , 8, 9, 10
y = 7,5 , 7,0 , 6,5 , 6,0 , ... , 0,5 , 0
z = 1, 4, 7, 10, 13, ... , 100
w = 0,001 , 0,01 , 0,1 , 1 , 10 , ... , 10
6

X=


Penjelasan: Himpunan X adalah deret angka dari -10 sampai 10, dan selisih dari setiap bilangan adalah 1 maka kita tidak harus menuliskan angka 1 diantara -10 dan 10 karena itu akan otomatis.



Penjelasan: Atau juga kita bisa menggunakan fungsi linspace seperti ini, yaitu kita menuliskan pojok kanan dan pojok kiri angka yaitu -10 dan 10 lalu kita ketikkan jumlah angka yang diinginkan yaitu 21, karena angka-angka itu akan bisa dibagi sama rata dengan selisih 1 jika kita ciptakan 21 ruang bagi mereka.


Y=

Penjelasan: Himpunan Y adalah deret bilangan dari 7,5 sampai 0 dengan selisih -0,5, maka yang ketikkan pertama kali adalah angka pojok kiri, lalu kita ketikkan selisihnya karena itu adalah menurun maka selisihnya adalah min (-) dan yang terakhir kita ketikkan angka pojok kanan.



Penjelasan: Atau kita juga bisa menggunakan fungsi linspace, yaitu dengan kita mengetikkan angka pojok kiri lalu angka pojok kanannya dan banyaknya bilangan yang dapat menampung angka-angka tersebut yaitu 16


Z=

Penjelasan: Himpunan Z adalah deret angka dari 1 sampai 100 dengan selisih 3, maka yang kita ketikkan pertama kali adalah angka pojok kirinya, lalu kita ketik selisih didalam himpunan tersebut, selanjutnya kita tulis angka pojok kanannya.


Penjelasan: Atau kita bisa menggunakan fungsi linspace yaitu dengan kita mengetikkan angka pojok kirinya lalu pojok kanan setelahnya kita ketikkan banyaknya bilangan yang dapat menampung angka-angka tersebut.



W=

Penjelasan: Kita menggunakan fungsi logspace disini dengan mengetikkan pangkat pertama lalu pangkat kedua dan banyaknya bilangan yang dapat menampung angka-angka tersebut.


   1. Buatlah matriks N yang berisi kolom pertama hingga keempat dari matriks M berikut :
       



                 Penjelesan: Pertama kita mengubah matrix M menjadi matrix N dengan mengetikkan
                 >> N=[1 5 10 15; 1 2 4 8; -3 0 3 6; 32 16 8 4; 5 -5 5 -5]




Penjelasan: Untuk menukar kolom 1 dengan kolom 4 dan kolom 2 dengan kolom 3, maka kita gunakan fungsi fliplr(N) karena fungsinya yang menukar letak data secara vertikal atau melintang.



Penjelasan: Untuk menukar baris 1 dengan baris 5 dan baris 2 dengan baris 4 maka kita gunakan fungsi flipud(N) karena fungsinya yang menukar letak data secara horizontal atau membujur.


Penjelasan: Untuk merubah bentuknya menjadi 10x2 maka kita gunakan fungsi reshape(N,10,2) yaitu mengubah matrix N menjadi ukuran 10x2


Penjelasan: Untuk merubah bentuknya menjadi 4x5 maka kita gunakan fungsi reshape(N,4,5) yaitu mengubah matrix N menjadi ukuran 4x5

Terimakasih





Tidak ada komentar:

Posting Komentar