Anda di halaman 1dari 107

Tutorial Octave/Matlab

Eka Yuliatin
081711333002
Isi
Ikhtisar
Mulai, berhenti, dapatkan bantuan
Variabel dan tipe data
Matriks
Plotting
Pemrograman
Fungsi dan skrip
File I / O
Lain-lain
Oktaf dan Matlab dalam praktik
Librobotik
Ikhtisar
Oktaf adalah "Matlab sumber terbuka"
Oktaf adalah pembungkus plot Gnu yang hebat
www.octave.org
www.mathworks.com

Oktaf dan Matlab keduanya memiliki bahasa tingkat tinggi dan


lingkungan pemrograman matematika untuk:
Visualisasi
Pemrograman, pengembangan algoritma
Perhitungan numerik: aljabar linier, optimisasi, kontrol, statistik, pemrosesan sinyal dan
gambar, dll.
Ikhtisar
Perbandingan Matlab-Oktaf:
Matlab lebih fleksibel / maju / kuat / mahal
Oktaf gratis (lisensi GPL)
Ada sedikit perbedaan dalam sintaksis
Tutorial ini:
Tutorial ini berlaku untuk Oktaf * dan * Matlab
kecuali dinyatakan sebaliknya!
Versi saat ini
Oktaf 3.2.3
Matlab 7.6
Isi
Ikhtisar
Mulai, Berhenti, Dapatkan Bantuan
Variabel dan tipe data
Matriks
Plotting
Pemrograman
Fungsi dan skrip
File I / O
Lain-lain
Oktaf dan Matlab dalam praktik
Librobotik
Mulai, Berhenti, Mendapatkan Bantuan

Untuk memulai Oktaf klik dua kali


Octave.app atau klik kanan pada
aplikasi octave yang muncul di desktop
lalu klik open.

Anda akan melihat prompt:


oktaf: 1>
• Jika Anda mendapat masalah, Anda
dapat menginterupsi Oktaf dengan
mengetikkan Ctrl-C.
• Untuk keluar dari Oktaf, ketik keluar
atau keluar.
Mulai, Berhenti, Mendapatkan Bantuan

• Untuk mendapatkan bantuan, ketik help


atau doc
• Untuk mendapatkan bantuan pada perintah
tertentu (= built-in function), ketik help
command
Contoh: help size, help plot, help figure,
help inv
• Untuk mendapatkan bantuan pada sistem
bantuan, ketikkan help help
• Ketikkan q untuk keluar dari mode bantuan
(seperti halaman manual)
Mulai, Berhenti, Mendapatkan Bantuan

• Dalam teks bantuan fungsi Matlab, nama


fungsi dan variabel dalam huruf kapital.
Contoh: help round
ROUND Round towards nearest integer.
ROUND(X) rounds the elements of X to the
nearest integers. See also floor, ceil, fix.
[...]
• Teks oktaf penulisannya dalam huruf kecil dan
kapital.
Isi
Ikhtisar
Mulai, berhenti, dapatkan bantuan
Variabel dan tipe data
Matriks
Plotting
Pemrograman
Fungsi dan skrip
File I / O
Lain-lain
Oktaf dan Matlab dalam praktik
Librobotik
Variabel dan Tipe Data

• Matriks (real dan kompleks)


• String (matriks karakter)
• Struktur

➛ Vektor? Ini adalah matriks dengan satu kolom / baris


➛ Skalar? Ini adalah matriks dimensi 1x1
➛ Integer? Ini ganda (Anda tidak perlu khawatir)
➛ Boolean? Ini bilangan bulat (non-null = true, 0 = false)

Matlab memiliki lebih banyak jenis, mis. Kelas-OO


Variabel dan Tipe Data
Membuat Matriks

Untuk memisahkan elemen yang satu


dengan elemen yang lainnya yang
terletak pada satu baris dapat digunakan
tanda koma (,) atau tanda spasi.

Kemudian untuk memisahkan antara


baris yang satu dengan yang lainnya,
gunakan tanda titik koma (;) atau tanda
ENTER
Variabel dan Tipe Data
Membuat String Karakter
Untuk alasan kompatibilitas, gunakan kutipan tunggal.
Variabel dan Tipe Data

• Variabel Tampilan
Cukup ketik huruf dan
angkanya

• Menekan Output, agar tidak


muncul sebagai variabel
tampilan
Tambahkan titik koma:
Berlaku juga untuk panggilan
fungsi.
Variabel dan Tipe Data
Variabel tidak memiliki tipe
permanen.
s = 3 diikuti oleh s = 'oktaf' baik-
baik saja
Gunakan who (atau yang lebih
terperinci whos) untuk membuat
daftar variabel yang saat ini
didefinisikan
Variabel dan Tipe Data

Variabel Presisi Numerik disimpan sebagai angka presisi ganda dalam format
floating-point IEEE.
realmin : Nomor floating-point positif terkecil: 2.23e-308
realmax : Nomor floating-point positif terbesar: 1.80e + 308
eps : Presisi relatif: 2.22e-16
Variabel dan Tipe Data

Kontrol Tampilan Variabel Float


format short : format titik tetap dengan 5 digit
format long : format titik tetap dengan 15 digit
format short e : format titik mengambang, 5 digit
format long e : format titik Mengambang, 15 digit
format short g : Terbaik dari fixed atau floating-point dengan 5 digit
format long g : Terbaik dari titik tetap atau mengambang dengan 15 digit

Lihat help format untuk informasi lebih lanjut


Variabel dan Tipe Data

Berbicara tentang Variabel Float


ceil (x) : Bulat ke bilangan bulat terkecil tidak kurang dari x
lantai (x) : Bulat ke bilangan bulat terbesar tidak lebih besar dari x
round (x) : Round menuju integer terdekat
fix (x) : Putaran ke nol

Jika x adalah sebuah matriks, fungsi-fungsi tersebut diterapkan ke setiap elemen x.


Isi
Ikhtisar
Mulai, berhenti, dapatkan bantuan
Variabel dan tipe data
Matriks
Plotting
Pemrograman
Fungsi dan skrip
File I / O
Lain-lain
Oktaf dan Matlab dalam praktik
Librobotik
Matriks
Membuat Matriks
Untuk membatasi kolom, gunakan koma
atau spasi

Untuk membatasi baris, gunakan tanda titik


koma
Matriks

Membuat Matriks
Contoh Alternatif nya adalah
Matriks
Membuat Matriks dari Matriks
Dari segi colom (C)
Dari segi baris (D)
Matriks
Pengindeksan
Selalu "baris sebelum kolom"
aij = A (i, j) Dapatkan elemen
r = A (i, :) Dapatkan satu baris
c = A (:, j) Dapatkan kolom
B = A (i: k, j: l) Dapatkan submatrix

Perintah pengindeksan yang berguna


end:
octave:1> data = [4 -1 35 9 11 -2];
octave:2> v = data(3:end)
v = 35 9 11 -2
Matriks
Colon ':', dua arti:
Wildcard untuk memilih seluruh baris
atau kolom matriks A(3,:), B(:,5)

Mendefinisikan rentang ekspresi seperti


indices = 1: 5 Mengembalikan vektor
baris 1,2,3,4,5
step = 1: 3: 61 Mengembalikan
vektor baris 1,4,7, ..., 61
t = 0: 0,01: 1 Pengembalian
vektor 0,01,0,0,02, ..., 1
Matriks

• Menetapkan Baris / Kolom


Semua elemen yang direferensikan
diatur ke nilai scalar
octave:1> A = [1 2 3 4 5; 2 2 2 2 2;
3 3 3 3 3];
octave:2> A(3,:) = -3;

• Menambahkan Baris / Kolom


Jika baris / kolom yang dirujuk
tidak lagi sama, maka berarti telah
ditambahkan.
octave:3> A(4,:) = 4
Matriks
Menghapus Baris / Kolom
Menetapkan matriks kosong [ ] untuk menghapus baris atau kolom yang direferensikan.
Matriks

Dapatkan Ukuran
nr = ukuran (A, 1) Dapatkan jumlah baris A
nc = ukuran (A, 2) Dapatkan jumlah kolom A
[nr nc] = size (A) Dapatkan keduanya (ingat urutan)
l = panjang (A) Dapatkan apa pun yang lebih besar
numel (A) Dapatkan sejumlah elemen dalam A
isempty (A) Periksa apakah A adalah matriks kosong []

Hanya oktaf:
nr = baris (A) Dapatkan jumlah baris A
nc = kolom (A) Dapatkan jumlah kolom A
Matriks
Operasi Matriks
B=3*A perkalian vektor dengan skalar
C=A*B+X-D Tambah dan kalikan
B = A’ Transpose A
B = inv (A) Balikkan A
s = v '* Q * v Campurkan vektor dan matriks

d = det (A) Determinan dari A


[v lambda] = eig (A) Nilai dekomposisi eigen
[U S V] = svd (A) Sing. dekomposisi nilai
Matriks
Operasi Vektor Dengan x menjadi vektor kolom
s = x '* x Produk dalam, hasilnya adalah
skalar
X = x * x ' Produk luar, hasilnya adalah matriks
e=x*x Memberikan kesalahan (error)

Element Wise Operations (untuk vektor /


matriks)
s = x. + x Penambahan element-wise
p = x. * x Perkalian element-wise
q = x./x Pembagian element-wise
e = x. ^ 3 operator daya element-wise
Matriks
Fungsi Vektor Berguna
sum (v) Menghitung jumlah elemen dari v
cumsum (v) Menghitung jumlah kumulatif elemen v
prod (v) Hitung produk elemen v
cumprod (v) Hitung produk kumulatif elemen v
diff (v) Hitung perbedaan elemen berikutnya
[v (2) -v (1) v (3) -v (2) ...]
mean (v) Nilai rata-rata elemen dalam v
std (v) Standar deviasi elemen
Matriks
Fungsi Vektor Berguna
min (v) Mengembalikan elemen terkecil di v
maks (v) Mengembalikan elemen terbesar di
v

sort (v, 'ascend') Sortir dalam urutan menaik


sort (v, 'descend') Sortir dalam urutan
menurun

find (v) Kembalikan vektor indeks semua


elemen bukan nol dalam v. Contoh:
ivec = find (datavec == 5).
Matriks
Matriks khusus
A = zeros (m, n) Matriks nol ukuran m x n
B = ones (m, n) Matriks ukuran m x n
dengan semua angkanya 1
I = eye (n) Matriks identitas ukuran n
D = diag ([a b c]) Matriks diagonal ukuran 3
x 3 dengan a, b, c di
diagonal utama

Tidak khusus
M = magic (n) Magic square matrix dengan
ukuran n x n. (Semua baris dan
kolom berjumlah hingga angka
yang sama)
Matriks
Matriks dan Vektor Acak
R = rand (m, n) Matriks dengan m x n
angka acak terdistribusi
seragam dari interval
[0..1]
N = randn (m, n) Vektor baris dengan m
x n angka acak yang
terdistribusi normal
dengan rata-rata nol,
varian unit
v = rand per (n) Vektor baris dengan
permutasi acak angka 1
ke n
Matriks

Matriks Multi Dimensi


Matriks dapat memiliki lebih dari dua
dimensi.
Buat matriks 3 dimensi dengan mengetik,
mis.,
octave:1> A = ones(2,5,2)
Matriks
Matriks Multi Dimensi
Semua operasi untuk membuat, mengindeks, menambah, menetapkan, menghapus dan
mendapatkan ukuran untuk diterapkan dengan cara yang sama
Matriks

Matriks Massage
Reshape (A, m, n) Ubah ukuran matriks A
menjadi berdimensi m x
n. Kesalahan terjadi jika
A tidak memiliki elemen
mxn
circshift (A, [m n]) Menggeser elemen dari A
m kali dalam dimensi
baris dan n kali dalam
dimensi kolom
shiftdim (A, n) Menggeser dimensi A
dengan n. Generalisasi
transpos untuk matriks
multi-dimensi
Matriks
Contoh Matriks massage
Misalkan P = [x1; y1; x2; y2; ...] menjadi vektor
kolom 2nx1 dari n (x, y) -pairs. Jadikan sebagai
vektor kolom dari (x, y, theta) -tuple dengan semua
nilai theta menjadi pi / 2:
1. Jadikan sebagai matriks 2xn
oktaf: 1> P = membentuk kembali (P, 2, numel
(P) / 2);
2. Tambahkan baris ketiga, tetapkan pi / 2
oktaf: 2> P (3, :) = pi / 2;
3. Bentuk kembali menjadi vektor kolom 3nx1
oktaf: 3> P = membentuk kembali (P, numel (P),
1);
String
Perintah yang Paling Sering Digunakan
strcat Concatenate strings
int2str Konversi integer ke string
num2str Mengonversi angka menjadi string
sprintf Menulis data yang diformat ke string.
Sama seperti C / C ++ fprintf untuk
string.
Contoh
s = strcat ('Pada langkah', int2str (k), ', p =',
num2str (p, 4))
Mengingat bahwa string adalah matriks karakter,
ini juga
s = ['Pada langkah' int2str (k) ', p =' num2str (p,
4)]
String
Oktaf / Matlab memiliki hampir semua fungsi string dan parsing yang umum.

Anda disarankan untuk menelusuri daftar perintah atau cukup mengetik perintah bantuan:
strcmp, strncmp, strmatch, char, ischar, findstr, strfind, str2double, str2num, num2str,
strvcat, strtrim, strtrim, strtok, atas, bawah, dan banyak lagi. ..
Isi
Ikhtisar
Mulai, berhenti, dapatkan bantuan
Variabel dan tipe data
Matriks
Plotting
Pemrograman
Fungsi dan skrip
File I / O
Lain-lain
Oktaf dan Matlab dalam praktik
Librobotik
Plotting

Merencanakan dalam 2D
plot (x, cos (x)) Tampilan x, y-plot Membuat jendela gambar secara otomatis. Oktaf
menggunakan Gnuplot untuk menangani gambar.

Gambar (n) Buat jendela gambar 'n' Jika jendela angka sudah ada, bawa ke latar depan (=
menjadikannya gambar saat ini)
Plotting
Beberapa plot
Rangkaian x, pola-y: plot (x1, y1, x2, y2, ...) mis. plot (x, cos (x), x, sin (x), x, x. ^ 2)
Tambahkan legenda ke plot: command legend legend ('cos (x)', 'sin (x)', 'x ^ 2')
Atau, tunggu melakukan pekerjaan yang sama:
oktaf: 1> tunggu; plot (x, cos (x));
oktaf: 2> plot (x, sin (x));
oktaf: 3> plot (x, x. ^ 2);
Plotting

Perintah yang Sering


CLF Hapus Gambar
hold on. Jangan mengganti plot dengan plot baru, tumpang tindih plot
grid on Tambahkan kisi-kisi
grid off Hapus garis grid

title ('Exp1') Mengatur judul jendela gambar


xlabel ('time') Atur label sumbu-x
ylabel ('prob') Tetapkan label sumbu-y

subplot Masukkan beberapa kapak plot ke dalam gambar


Plotting

Mengontrol Sumbu
Axis equal Atur skala yang sama untuk sumbu x- / y
axis square Memaksakan rasio aspek persegi
axis tight Atur sumbu hingga batas data
a = axis Kembalikan batas sumbu saat ini [xmin xmax ymin ymax]
axis ([- 1 1 2 5]) Menetapkan batas sumbu (membekukan sumbu)
axis off Matikan tanda tic
Box on Menambahkan kotak ke sumbu saat ini
box off Menghapus kotak
Plotting
Memilih Simbol dan Warna
Dalam plot (x, cos (x), 'r +') ekspresi format 'r +' berarti palang merah.
Ada sejumlah gaya dan warna garis, lihat help plot
Plotting
Plotting

Menyesuaikan sumbu
octave:3> axis([0 2*pi -1 1]) (try also axis tight )

Adding a legend, labels and a title


octave:4> legend('cos(x)','sin(x)', 'Location','Southwest')
octave:5> title('Trigonometric Functions')
octave:6> xlabel('x')
octave:7> ylabel('y')
Plotting
Plotting

Ketika tidak suka


Coba baru: oktaf: 1> clf;

Mengontrol Warna dan Ukuran Penanda


octave:2> plot(x,cos(x),'r+',x,sin(x),'-x',... 'Color',[1 .4 .8],'MarkerSize',2) octave:3> axis
tight

Menambahkan Teks
octave:4> text(1,-0.5,'cos(\phi)')
octave:5> text(3,0.5,'sin(\phi)')
Plotting

Untuk mendapatkan hardcopy


Angka Ekspor
print – deps myPicBW.eps Ekspor B / W .eps file
print – depsc myPic.eps Ekspor warna .eps file
print – djpeg –r80 myPic.jpg Ekspor .jpg dalam 80 ppi
print – dpng –r100 myPic.png Ekspor .png dalam 100 ppi

Lihat bantuan mencetak untuk lebih banyak perangkat termasuk yang khusus untuk Lateks.

cetak juga bisa disebut sebagai fungsi. Kemudian, dibutuhkan argumen dan opsi sebagai
daftar yang dipisahkan koma. E.g .: print ('- dpng', '- r100', 'myPic.png');
Plotting

Tutorial ini tidak dapat mencakup berbagai macam perintah grafis di Octave / Matlab.

Anda didorong untuk menelusuri daftar perintah atau cukup ketik perintah bantuan:
hist, bar, pie, area, fill, contour, quiver, scatter, compass, rose, semilogx, loglog, stem, stairs,
image, imagesc
dan masih banyak lagi...
Plotting

Merencanakan dalam 3D
plot3 Alur garis dan titik dalam 3d
mesh 3D Jala plot permukaan
surf Plot permukaan berwarna 3D

Sebagian besar perintah plot 2d memiliki saudara 3D. Lihat, misalnya,


bbar3, pie3, fill3, contour3, quiver3, scatter3, stem3
Isi
Ikhtisar
Mulai, berhenti, dapatkan bantuan
Variabel dan tipe data
Matriks
plotting
Pemrograman
Fungsi dan skrip
File I / O
Lain-lain
Oktaf dan Matlab dalam praktik
Librobotik
Pemrograman

Pemrograman dalam Oktaf / Matlab adalah


Super Mudah. Namun, ingatlah fakta-fakta
berikut:
• Indeks dimulai dengan 1
• Oktaf / Matlab peka huruf besar-kecil.

Editor Teks
Gunakan editor dengan highlight /
pewarnaan sintaksis file-m.
Pemrograman

Struktur Kontrol
Pemrograman
Control Structures
switch Statement
Pemrograman

Control Structures
• while Statement
• for statement
Pemrograman

Loop yang break dan continue


Break
Melompat keluar dari bagian paling dalam untuk atau sementara loop yang menutupnya.
Continue
Digunakan hanya di dalam untuk atau saat loop. Itu melompati sisa tubuh loop,
menyebabkan siklus berikutnya dimulai. Gunakan dengan hati-hati.
Pemrograman

Operator Peningkatan (Hanya Oktaf)


Operator kenaikan menambah atau mengurangi nilai variabel sebesar 1.
i ++ Peningkatan skalar i dengan 1
i-- Mengurangi skalar i dengan 1
A ++ Menambah semua elemen matriks A dengan 1
v-- Mengurangi semua elemen vektor v dengan 1
Pemrograman
Operator Perbandingan
Semua operator pembanding mengembalikan
nilai 1 jika perbandingannya benar, atau 0 jika
salah.
Contoh: i == 6, cond1 = (d > theta)

Untuk kasus matriks-ke-matriks, perbandingan


dibuat berdasarkan elemen-demi-elemen.
Contoh:
[1 2; 3 4] == [1 3; 2 4] returns [1 0; 0 1]

Untuk kasus matriks-ke-skalar, skalar


dibandingkan dengan masing-masing elemen
secara bergantian.
Contoh:
[1 2; 3 4] == 2 returns [0 1; 0 0]
Pemrograman

Operator Perbandingan
any (v) Mengembalikan 1 jika elemen vektor v tidak nol (mis. 1)
all (v) Mengembalikan 1 jika semua elemen dalam vektor v tidak nol (mis. 1)

Untuk matriks, setiap dan semua mengembalikan vektor baris dengan elemen yang sesuai
dengan kolom matriks.
any (any (C)) Mengembalikan 1 jika ada elemen matriks C yang bukan nol (mis. 1)
all (all (C)) Mengembalikan 1 jika semua elemen dalam matriks C tidak nol (mis. 1)
Pemrograman

Operator Relasional
x <y Benar jika x kurang dari y
x <= y Benar jika x kurang dari atau sama dengan y
x == y Benar jika x sama dengan y
x> = y Benar jika x lebih besar dari atau sama dengan y
x> y Benar jika x lebih besar dari y
x~=y Benar jika x tidak sama dengan y
x! = y Benar jika x tidak sama dengan y (hanya oktaf)
x <> y Benar jika x tidak sama dengan y (hanya oktaf)
Pemrograman

Ekspresi Boolean
B1 & B2 Element-wise logical and
B1 | B2 Element-wise logical or
~B Element-wise logical not
!B Element-wise logical not (Octave only)

Operasi hubung singkat: hanya mengevaluasi ekspresi selama diperlukan (lebih efisien).
B1 && B2 Short-circuit logical and
B1 || B2 Short-circuit logical or
Pemrograman

Konvensi Penamaan yang Disarankan


Notasi yang dipisahkan garis bawah atau huruf kecil untuk berbagai fungsi
Examples: intersect_line_circle.m, drawrobot.m, calcprobability.m

UpperCamelCase untuk skrip


Examples: LocalizeRobot.m, MatchScan.m

Catatan: Perintah Matlab / Oktaf semuanya dalam notasi huruf kecil (tidak ada garis bawah
atau garis putus-putus)
Examples: continue, int2str, isnumeric
Isi
Ikhtisar
Mulai, berhenti, dapatkan bantuan
Variabel dan tipe data
Matriks
Merencanakan
Pemrograman
Fungsi dan skrip
File I / O
Lain-lain
Oktaf dan Matlab dalam praktik
Librobotik
Fungsi dan Script

Fungsi
Program Oktaf / Matlab yang rumit seringkali
dapat disederhanakan dengan mendefinisikan
fungsi. Fungsi biasanya didefinisikan dalam file
eksternal, dan dapat disebut seperti fungsi
bawaan.

Dalam bentuknya yang paling sederhana,


definisi fungsi bernama nama terlihat seperti ini:
function name body end
Biasakan diri pada prinsip untuk mendefinisikan
satu fungsi per file (file teks disebut file-m atau
file .m)
Fungsi dan Script

Melewati Parameter ke / dari Fungsi


Simply write function [ret-var] = nama
(daftar arg) ujung tubuh

arg-list adalah daftar input argumen arg1


yang dipisah koma, arg2, ..., argn

ret-var adalah daftar argumen keluaran


yang dipisahkan koma. Perhatikan bahwa
ret-var adalah vektor yang tertutup kurung
siku [arg1, arg2, ..., argm]
Fungsi dan Script
Contoh Fungsi :
Fungsi dan Script

Variabel Lokal, Variabel Jumlah Argumen


Tentu saja, semua variabel yang didefinisikan dalam tubuh fungsi adalah variabel lokal.

varargin Mengumpulkan semua argumen input dalam array sel.


varargout Mengumpulkan semua argumen keluaran dalam array sel.
nargin Dapatkan jumlah input args.
nargout Dapatkan jumlah argumen output.

Lihat bantuan varargin, bantuan varargout untuk detailnya.


Fungsi dan Script

Fungsi dan m-File


Saat meletakkan fungsi ke dalam file-m-nya, nama file itu harus sama dengan nama fungsi
ditambah ekstensi .m.
Contoh: calcmoments.m, findfirstpeak.m

Untuk memanggil suatu fungsi, ketikkan namanya tanpa ekstensi .m.


Contoh: [bool i] = findfirstpeak (myreadings, 0.3);
Fungsi dan Script

Skrip
Tipe kedua dari file-m disebut skrip. Sekali lagi, skrip Oktaf / Matlab adalah file teks
dengan ekstensi .m.

Skrip berisi kode yang dapat dieksekusi. Mereka pada dasarnya adalah program "utama".

Jalankan skrip dengan mengetik namanya tanpa ekstensi .m! Contoh: oktaf: 1>
LocalizeRobot
Fungsi dan Script

Dokumentasikan Fungsi / Script Anda


Anda dapat menambahkan teks bantuan ke fungsi atau skrip Anda sendiri yang muncul atas
perintah bantuan.

Blok pertama dari baris komentar pada awal file-m didefinisikan sebagai teks bantuan.
Contoh:
Fungsi dan Script

Pengaturan Paths
path Cetak daftar jalur pencarian
addpath ('dir') Tambahkan direktori yang ditentukan ke daftar path
rmpath ('dir') Hapus direktori yang ditentukan dari daftar path
savepath Simpan daftar jalur saat ini
Isi
Ikhtisar
Mulai, berhenti, dapatkan bantuan
Variabel dan tipe data
Matriks
Plotting
Pemrograman
Fungsi dan skrip
File I / O
Lain-lain
Oktaf dan Matlab dalam praktik
Librobotik
File I/O
Simpan Variabel
Setelah perhitungan panjang yang rumit, disarankan untuk menyimpan variabel pada disk
• save my_vars.mat
Menyimpan semua variabel saat ini ke file my_vars.mat
• save results.mat resultdata X Y
Menyimpan data hasil variabel, X dan Y di file results.mat
• save ... –ascii
Menyimpan variabel dalam format ASCII
• save ... -mat
Menyimpan variabel dalam format MAT biner
File I/O

Load Variables Perintah yang sesuai adalah load


• load my_vars.mat
Mengambil semua variabel dari file my_vars.mat

• load results.mat X Y
Hanya mengambil X dan Y dari file results.mat

• File ASCII yang berisi angka dalam format matriks (kolom dipisahkan oleh spasi, baris
dipisahkan oleh baris baru), dapat dengan mudah dibaca oleh
A = load('data.txt')
File I/O

Buka, Tulis, Tutup File


fopen Buka atau buat file untuk menulis /
membaca

fclose Tutup file

fprintf Menulis data yang diformat ke file.


Sintaks format C / C ++
File I/O

Jika program Anda menulis dan membaca dari file, ketepatan floating point dari fprintf
sangat penting!

Pastikan untuk selalu menulis angka floating point ke file menggunakan presisi yang sesuai.
File I/O

Membaca File
textread Baca data yang diformat dari file teks
fscanf Membaca data yang diformat dari file teks
fgetl Baca baris dari file
fread Baca file data biner

Baca / tulis gambar


imread Baca gambar dari file (banyak format)
imwrite Tulis gambar ke file (banyak format)
Isi
Ikhtisar
Mulai, berhenti, dapatkan bantuan
Variabel dan tipe data
Matriks
Merencanakan
Pemrograman
Fungsi dan skrip
File I / O
Lain-lain
Oktaf dan Matlab dalam praktik
Librobotik
Lain-lain

Membersihkan
clear A Hapus variabel A
clear frame * Hapus semua variabel yang namanya dimulai dengan frame ...
clear Hapus semua variabel
Clear all Hapus semuanya: variabel, global, fungsi, tautan, dll.
close Tutup jendela gambar latar depan
Close all Tutup semua jendela gambar terbuka
clc Bersihkan jendela perintah (shell)
Lain-lain
Menampilkan Pesan
disp (A) Tampilkan matriks A tanpa mencetak nama matriks
disp (str) Tampilkan string str tanpa mencetak nama string
Lain-lain

Sejarah Perintah
• Menavigasi naik turun sejarah perintah menggunakan tombol panah atas / bawah.
• Sejarah perintah sensitif terhadap huruf mulai. Ketik satu atau lebih huruf dan gunakan
tombol panah untuk menavigasi naik turun sejarah perintah yang dimulai dengan huruf
yang Anda ketik.

Penyelesaian tab
Oktaf / Matlab memiliki penyelesaian tab. Ketikkan beberapa huruf diikuti oleh tab untuk
mendapatkan daftar semua perintah yang dimulai dengan huruf yang Anda ketikkan.
Lain-lain

Perintah Unix bawaan


pwd Menampilkan direktori kerja saat ini
ls; Daftar direktori. Lihat juga dir.
cd Ganti direktori
mkdir Buat direktori baru
rmdir Hapus direktori

Perintah Terkait
movefile Memindahkan file
copyfile Salin file
Lain-lain

Random seeds
• rand dan rand mendapatkan benih awal dari jam sistem.
• Untuk menghasilkan urutan yang identik / berulang, atur benih generator acak secara
manual.

Untuk mengatur random seeds:


rand ('seed', value) Mengatur seed ke nilai nilai integer skalar.
randn ('seed', value) Atur seed ke nilai nilai integer skalar.
Isi
Ikhtisar
Mulai, berhenti, dapatkan bantuan
Variabel dan tipe data
Matriks
Merencanakan
Pemrograman
Fungsi dan skrip
File I / O
Lain-lain
Oktaf dan Matlab dalam praktik
Librobotik
Octave dan Matlab dalam Praktik

Oktaf / Matlab dalam Praktek


Hal-hal yang Berguna dalam Praktek
• Menghasilkan output dari program C / C ++ / Python / Java / ... dalam sintaks oktaf
• Membuat animasi
• Memanggil fungsi unix / dos dari dalam program Octave
• Meningkatkan kecepatan
Octave dan Matlab dalam Praktik

Membuat Animasi
• Matlab telah memerintahkan seperti getframe dan film untuk membuat film animasi dari
plot.
• Oktaf, karena bebas biaya, belum (belum) mendukung perintah-perintah ini.
• Berikut adalah cara yang cukup jelas untuk membuat film:
Ekspor plot ke direktori "bingkai" menggunakan cetak dari dalam satu lingkaran.
Kemudian buat bingkai ke film menggunakan alat seperti ImageMagick atau Quicktime
Pro.
Octave dan Matlab dalam Praktik
Membuat Animasi. Contoh:
Biarkan data.txt berisi data dalam format matriks, kami ingin memplot setiap kolom dan
menyimpannya sebagai bingkai.
Octave dan Matlab dalam Praktik
Membuat Animasi. Contoh:
Untuk membekukan sumbu di seluruh animasi, gunakan sumbu perintah ([xmin xmax ymin
ymax]) setelah perintah plot.
Octave dan Matlab dalam Praktik

Memanggil Fungsi unix / dos


• Untuk sistem Unix / Linux / MacOSX, ada perintah unix untuk menjalankan perintah
sistem dan mengembalikan hasilnya. Contoh:
unix ('ls -al')
unix ('ftp <ftp_script')
unix ('./ myprogram')

• Untuk PCs, ada dos perintah yang setara.

• Perintah-perintah ini memungkinkan untuk kombinasi yang kuat dan berguna dengan
program lain atau perintah sistem.
Octave dan Matlab dalam Praktik

Kecepatan
• Kurangnya kecepatan program Octave / Matlab secara luas diakui sebagai kelemahan
terbesar mereka.

• Sebagian besar program Anda yang lambat, bukan fungsi bawaan

• Ini membawa kita ke pedoman berikut:


o Loops itu jahat
o Vektorisasi bagus
o Preallokasi bagus
o Lebih memilih struct array daripada array struct
Octave dan Matlab dalam Praktik
Kecepatan: Vektorisasi
Octave dan Matlab dalam Praktik
Kecepatan: Preallokasi
Jika for- atau sementara-loop tidak dapat dihindari, jangan menumbuhkan struktur data
dalam loop, preallocate mereka jika Anda bisa. Alih-alih, mis.,
Octave dan Matlab dalam Praktik
Kecepatan: Struktur Susunan
Selalu lebih memilih struct array daripada array struct. Ini membutuhkan memori jauh lebih
sedikit dan memiliki manfaat kecepatan yang sesuai
Isi
Ikhtisar
Mulai, berhenti, dapatkan bantuan
Variabel dan tipe data
Matriks
Merencanakan
Pemrograman
Fungsi dan skrip
File I / O
Misc
Oktaf dan Matlab dalam praktik
Librobotics
Librobotics

librobotik adalah perpustakaan kecil dengan fungsi Oktaf / Matlab yang sering digunakan
dalam Robotika, terutama untuk visualisasi.
chi2invtable.m drawrawdata.m j2comp.m
compound.m drawreference.m jinv.m
diffangle.m drawrobot.m mahalanobis.m
drawarrow.m drawrect.m meanwm.m
drawellipse.m drawtransform.m normangle.m
drawlabel.m icompound.m drawprobellipse.m
j1comp.m

Download from SRL Homepage: srl.informatik.uni-freiburg.de/downloads


Librobotics
Librobotics
Librobotics
Librobotics
Librobotics
Librobotics
Librobotics
Librobotics
Librobotics

Semua perintah didokumentasikan sepenuhnya, cukup ketik perintah bantuan.

Perhatikan perintah chi2invtable.m. Ini mengembalikan nilai-nilai dari distribusi chi-square


kumulatif, biasanya digunakan untuk pengujian gating dan hipotesis. Ini menggantikan
fungsi chi2inv dari kotak alat Matlab statistik (yang merupakan tambahan mahal untuk
Matlab) sementara juga jauh lebih cepat.

librobotik kompatibel dengan keduanya, Matlab dan Oktaf.

Ini open-source, jangan ragu untuk mendistribusikan dan memperluas.


THANK YOU

Anda mungkin juga menyukai