Anda di halaman 1dari 32

PEMOGRAMAN DENGAN MENGGUNAKAN

MATLAB
CONTROL ALIRAN
MATLAB memiliki beberapa kontrol aliran konstruksi:
jika pernyataan
pernyataan switch
untuk loop
sementara loop
melanjutkan laporan
Pernyataan istirahat
IF
Pernyataan IF mengevaluasi ekspresi logis dan mengeksekusi sekelompok
pernyataan ketika ekspresi benar, Opsional else if dan lain.
kata kunci menyediakan untuk eksekusi kelompok alternatif laporan. sebuah akhir
kata kunci, yang cocok jika, mengakhiri kelompok terakhir laporan itu.
kelompok pernyataan yang digambarkan oleh empat kata kunci - tidak ada kawat gigi atau
kurung terlibat.
Algoritma MATLAB untuk menghasilkan magic square memesan dan melibatkan tiga
kasus yang berbeda: jika n adalah ganjil, jika n bahkan tetapi tidak habis dibagi 4, atau bila n
yang habis dibagi 4. Hal ini dijelaskan oleh
if rem(n,2) ~= 0
M = odd_magic(n)
elseif rem(n,4) ~= 0
M = single_even_magic(n)
else
M = double_even_magic(n)
end
Dalam contoh ini, tiga kasus yang saling eksklusif tetapi jika mereka tidak, Kondisi pertama
benar akan dieksekusi Adalah penting untuk memahami bagaimana operator relasional dan
jika pernyataan bekerja dengan matriks. Bila Anda ingin memeriksa kesetaraan antara dua
variabel, Andamungkin menggunakan :
if A == B, ...
Ini adalah hukum kode MATLAB , dan melakukan apa yang Anda harapkan ketika A dan B
adalah skalar .
Tapi ketika A dan B adalah matriks , A == B tidak menguji jika mereka sama , hal itu akan
menguji di mana mereka sama , hasilnya adalah matriks lain 0 dan 1 menunjukkan
kesetaraan unsur oleh elemen . Bahkan , jika A dan B tidak ukuran yang sama , maka
A == B adalah sebuah kesalahan .
Cara yang tepat untuk memeriksa kesetaraan antara dua variabel adalah dengan
menggunakan Fungsi isEqual :
if isequal(A,B), ...
Berikut adalah contoh lain untuk menekankan titik ini . Jika A dan B adalah skalar , maka
program berikut ini tidak akan pernah mencapai situasi yang tak terduga . Tapi bagi sebagian
pasang matriks , termasuk matriks kami dengan kolom dipertukarkan ,
tidak ada kondisi matriks A > B , A < B atau A == B adalah benar untuk semua elemen
sehingga klause lain yang dieksekusi .
if A > B
'greater'
elseif A < B
'less'
elseif A == B
'equal'
else
error('Unexpected situation')
end
Beberapa fungsi sangat membantu untuk mengurangi hasil perbandingan matriks
Kondisi skalar untuk digunakan dengan jika , termasuk
isequal
isempty
all
any

saklar dan kasus
Pernyataan saklar mengeksekusi kelompok pernyataan berdasarkan nilai dari
variabel atau ekspresi. Kata kunci kasus dan sebaliknya menggambarkan
kelompok. Hanya kasus pertama yang cocok dijalankan. Harus selalu ada akhir
untuk mencocokkan saklar.
Logika algoritma kotak ajaib juga dapat dijelaskan oleh :
switch (rem(n,4)==0) + (rem(n,2)==0)
case 0
M = odd_magic(n)
case 1
M = single_even_magic(n)
case 2
M = double_even_magic(n)
otherwise
error('This is impossible')
end
NOTE : Berbeda dengan C pernyataan ganti bahasa, switch MATLAB tidak
jatuh. Jika kasus pernyataan pertama benar, laporan kasus lain melakukan
tidak mengeksekusi. Jadi, pernyataan break tidak diperlukan.
FOR
For loop itu untuk mengulangi sekelompok pernyataan yang tetap, jumlah yang telah
ditetapkan
kali. Akhir pencocokan melukiskan laporan.
for n = 3:32
r(n) = rank(magic(n));
end
r
Titik koma mengakhiri pernyataan dalam menekan pencetakan ulang,
dan r setelah loop menampilkan hasil akhir.
Ini adalah ide yang baik untuk indent loop untuk dibaca, terutama ketika mereka bersarang.

for i = 1:m
for j = 1:n
H(i,j) = 1/(i+j);
end
end
WHILE
while loop itu mengulangi sekelompok pernyataan jumlah tak terbatas kali di bawah kontrol
dari suatu kondisi logis. Akhir pencocokan melukiskan laporan. Berikut ini adalah program
yang lengkap, menggambarkan sementara, if, else, dan akhir, yang menggunakan Interval
pembelahan untuk menemukan nol polinomial.
a = 0; fa = -Inf;
b = 3; fb = Inf;
while b-a > eps*b
x = (a+b)/2;
fx = x^3-2*x-5;
if sign(fx) == sign(fa)
a = x; fa = fx;
else
b = x; fb = fx;
end
end
x
Hasilnya adalah akar dari polinomial x
3
- 2x - 5, yaitu x = 2,09455148154233.
Memperingatkan melibatkan perbandingan matriks yang dibahas pada bagian
jika pernyataan juga berlaku untuk laporan sementara.



CONTINUE
Pernyataan continue melewati kontrol ke iterasi berikutnya untuk atau saat
lingkaran yang muncul, melompat-lompat pernyataan yang tersisa dalam tubuh
lingkaran. Dalam loop bersarang, terus melewati kontrol ke iterasi berikutnya untuk
atau while loop melampirkan itu.
Contoh di bawah ini menunjukkan loop kontinu yang menghitung baris kode dalam
berkas, magic.m, melewatkan semua baris kosong dan komentar. Sebuah pernyataan
kontinyu adalah digunakan untuk maju ke baris berikutnya di magic.m, tanpa incrementing
hitungan , setiap kali baris kosong atau baris komentar ditemui.
fid = fopen('magic.m','r');
count = 0;
while ~feof(fid)
line = fgetl(fid);
if isempty(line) | strncmp(line,'%',1)
continue
end
count = count + 1;
end
disp(sprintf('%d lines',count));
BREAK
Pernyataan break memungkinkan Anda keluar lebih awal dari untuk atau saat loop. dalam
bersarang loop, istirahat keluar dari lingkaran terdalam saja.
Berikut adalah perbaikan pada contoh dari bagian sebelumnya. Mengapa hal ini
penggunaan mematahkan ide yang baik?
a = 0; fa = -Inf;
b = 3; fb = Inf;
while b-a > eps*b
x = (a+b)/2;
fx = x^3-2*x-5;
if fx == 0
break
elseif sign(fx) == sign(fa)
a = x; fa = fx;
else
b = x; fb = fx;
end
end
x
Lainnya Struktur Data
Bagian ini memperkenalkan Anda untuk beberapa struktur data lain di MATLAB,
termasuk:
Array multidimensi
your array
Karakter dan teks
Struktur
Array multidimensi
Array multidimensi dalam MATLAB adalah array dengan lebih dari dua
subscript. Mereka dapat dibuat dengan menelepon nol, yang, rand, atau randn dengan
lebih dari dua argumen. Sebagai contoh,
R = randn(3,4,5);
menciptakan 3-by-4-by-5 array dengan total 3x4x5 = 60 terdistribusi normal
unsur-unsur acak.
Suatu array tiga dimensi mungkin mewakili data fisik tiga dimensi, mengatakan suhu di
dalam ruangan, sampel pada kotak persegi panjang. Atau, itu mungkin mewakili urutan
matriks, A
(k),
atau sampel dari matriks tergantung waktu, A (t). Dalam kasus terakhir, (i, j)
elemen th-k matriks, atau t
k
th matriks, dilambangkan dengan A (i, j, k).
MATLAB dan Drer 's versi persegi ajaib order 4 berbeda oleh
pertukaran dari dua kolom. Banyak kotak ajaib yang berbeda dapat dihasilkan oleh
interchanging kolom. Pernyataan:
p = perms(1:4);
menghasilkan 4! = 24 permutasi 1:4. -K permutasi baris
vektor, p (k, :). Kemudian
A = magic(4);
M = zeros(4,4,24);
for k = 1:24
M(:,:,k) = A(:,p(k,:));
End
menyimpan urutan 24 kotak ajaib dalam array tiga-dimensi, M.
ukuran M adalah
ans =
4 4 24

Ternyata bahwa matriks di urutan ketiga adalah Drer 's
M(:,:,3)

ans =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Pernyataan
sum(M,d)
menghitung jumlah dengan memvariasikan dth subscript. Jadi
sum(M,1)
adalah array 1-by-4-by-24 berisi 24 salinan dari vektor baris
34 34 34 34
and
sum(M,2)
adalah array 4-by-1-by-24 berisi 24 salinan dari vektor kolom
34
34
34
34
Akhirnya,
S = sum(M,3)
menambahkan 24 matriks dalam urutan. Hasilnya memiliki ukuran 4-by-4-by-1, sehingga
terlihat seperti array 4-by-4.
S =
204 204 204 204
204 204 204 204
204 204 204 204
204 204 204 204



CELL ARRAY
Sel array dalam MATLAB adalah array multidimensi yang elemen-elemennya
salinan array lainnya. Sebuah array sel matriks kosong dapat dibuat dengan fungsi sel. Tapi,
lebih sering, array sel diciptakan dengan dilampiri koleksi aneka hal dalam kurung kurawal,
{}. Kurung kurawal juga digunakan dengan subskrip untuk mengakses isi dari berbagai sel.
Sebagai contoh,
C = {A sum(A) prod(prod(A))}
menghasilkan array sel 1-by-3. Tiga sel mengandung sihir persegi, baris
vektor jumlah kolom, dan produk dari semua elemen. Ketika C ditampilkan,
Anda lihat
C =
[4x4 double] [1x4 double] [20922789888000]
Hal ini karena pertama dua sel terlalu besar untuk mencetak dalam ruang terbatas, tetapi
sel ketiga hanya berisi satu nomor, 16!, sehingga ada ruang untuk mencetaknya.
Berikut adalah dua hal penting untuk diingat. Pertama, untuk mengambil isi
salah satu sel, gunakan subscript dalam kurung kurawal. Sebagai contoh, C {1} mengambil
kembali sihir persegi dan C {3} adalah 16!. Kedua, array sel berisi copy dari array lain,
bukan pointer ke array tersebut. Jika Anda kemudian mengubah A, tidak ada yang terjadi
untuk C.
Array tiga-dimensi dapat digunakan untuk menyimpan urutan matriks dari ukuran yang sama.
Sel array dapat digunakan untuk menyimpan urutan matriks yang berbeda ukuran. Sebagai
contoh,
M = cell(8,1);
for n = 1:8
M{n} = magic(n);
end
M


menghasilkan urutan kotak ajaib dari urutan yang berbeda.
M =
[ 1]
[ 2x2 double]
[ 3x3 double]
[ 4x4 double]
[ 5x5 double]
[ 6x6 double]
[ 7x7 double]
[ 8x8 double]

Anda dapat mengambil teman lama kita dengan
M {4}





Characters and Text
Masukkan teks ke dalam MATLAB menggunakan tanda kutip tunggal. Sebagai contoh,
s = 'Hello'
Hasilnya bukan jenis yang sama matriks numerik atau array kita telah
berurusan dengan sampai sekarang. Ini adalah 1-by-5 array karakter.
Secara internal, karakter disimpan sebagai angka, tapi tidak dalam floating-point
Format. Pernyataan
a = double(s)
mengubah array karakter dengan matriks numerik mengandung floating-point
representasi dari kode ASCII untuk masing-masing karakter. Hasilnya adalah
a =
72 101 108 108 111
pernyataan
s = char (a)
membalikkan konversi.
Konversi angka ke karakter memungkinkan untuk menyelidiki berbagai
font yang tersedia pada komputer Anda. Karakter yang dapat dicetak dalam ASCII dasar
set karakter diwakili oleh bilangan bulat 32:127. (Bilangan bulat kurang dari
32 mewakili karakter kontrol nonprintable.) Maskapai bilangan bulat tersebut diatur dalam
yang sesuai 6-by-16 array dengan
F = reshape(32:127,16,6)';
Karakter yang dapat dicetak dalam set karakter ASCII diperpanjang diwakili
oleh F 128. Ketika bilangan bulat ini diartikan sebagai karakter, hasilnya
tergantung pada font saat ini sedang digunakan. Ketik laporan
char (F)
char (F 128)


dan kemudian bervariasi font yang digunakan untuk MATLAB Command Window. memilih
Preferensi dari menu File. Pastikan untuk mencoba Simbol dan Wingdings font, jika Anda
memiliki mereka pada komputer Anda. Berikut adalah salah satu contoh dari jenis Output
Anda mungkin mendapatkan.
!"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~


OEoe
-??


Rangkaian dengan tanda kurung siku bergabung variabel teks bersama-sama menjadi lebih
besar string. Pernyataan
h = [s, ' world']
bergabung dengan string horizontal dan menghasilkan
h =
Hello world
Pernyataan,
v = [s; 'world']
bergabung dengan string vertikal dan menghasilkan


v =
Hello
World
Perhatikan bahwa kosong harus dimasukkan sebelum 'w' dalam h dan bahwa kedua
kata di v harus memiliki panjang yang sama. Array yang dihasilkan keduanya array karakter;
h adalah 1-by-11 dan v adalah 2-by-5.
Untuk memanipulasi tubuh teks yang berisi garis panjang yang berbeda, Anda memiliki dua
pilihan - sebuah array karakter empuk atau array sel string. Char Fungsi menerima sejumlah
baris, menambahkan kosong untuk setiap baris untuk membuat mereka semua sama panjang,
dan membentuk array karakter dengan setiap baris dalam baris yang terpisah, untuk
contohnya:
S = char('A','rolling','stone','gathers','momentum.')
produces a 5-by-9 character array.
S =
A
rolling
stone
gathers
momentum.
Ada cukup kosong di setiap dari empat baris S untuk membuat semua baris
panjang yang sama. Atau, Anda dapat menyimpan teks dalam array sel. untuk
misalnya,
C = {'A';'rolling';'stone';'gathers';'momentum.'}
is a 5-by-1 cell array.
C =
'A'
'rolling'
'stone'
'gathers'
'momentum.'
Anda dapat mengkonversi array karakter empuk ke array sel string dengan
C = cellstr(S)
dan membalikkan proses dengan
S = char(C)
Structur
Struktur yang multidimensi MATLAB array dengan elemen diakses oleh
tekstual designators lapangan. Sebagai contoh,
S.name = 'Ed Plum';
S.score = 83;
S.grade = 'B+'
menciptakan struktur skalar dengan tiga bidang.
S =
name: 'Ed Plum'
score: 83
grade: 'B+'
Seperti segala sesuatu di MATLAB, struktur adalah array, sehingga Anda dapat
menyisipkan elemen tambahan. Dalam hal ini, setiap elemen array adalah struktur dengan
beberapa bidang. Bidang dapat ditambahkan satu per satu,
S(2).name = 'Toni Miller';
S(2).score = 91;
S(2).grade = 'A-';
atau, seluruh elemen dapat ditambahkan dengan pernyataan tunggal.
S(3) = struct('name','Jerry Garcia',...
'score',70,'grade','C')
Sekarang struktur cukup besar yang hanya ringkasan dicetak.
S =
1x3 struct array with fields:
name
score
grade
Ada beberapa cara untuk memasang kembali ke berbagai bidang lainnya MATLAB array.
Mereka semua didasarkan pada notasi dari daftar dipisahkan koma. Jika Anda mengetik
S.score
itu adalah sama seperti mengetik
S(1).score, S(2).score, S(3).score
Ini adalah daftar dipisahkan koma. Tanpa tanda baca lainnya, tidak sangat
berguna. Ini memberikan tiga nilai, satu per satu, ke variabel ans default dan
patuh mencetak hasil dari setiap tugas. Tetapi ketika Anda menyertakan
ekspresi dalam kurung persegi
[S.score]
itu adalah sama dengan
[S(1).score, S(2).score, S(3).score]
yang menghasilkan vektor baris numerik yang berisi semua nilai.
ans =
83 91 70
Demikian pula, mengetik
S.name
hanya memberikan nama, satu per satu, untuk ans. Tapi melampirkan ekspresi dalam
kurung kurawal,
{S.name}
menciptakan array sel 1-by-3 yang berisi tiga nama.
ans =
'Ed Plum' 'Toni Miller' 'Jerry Garcia'
And
char(S.name)
memanggil fungsi arang dengan tiga argumen untuk membuat array karakter dari
bidang nama,
ans =
Ed Plum
Toni Miller
Jerry Garcia
SCRIPT AND FUNCTION
MATLAB adalah bahasa pemrograman yang kuat serta interaktif lingkungan komputasi . File
yang berisi kode dalam bahasa MATLAB disebut M - file . Anda membuat M file
menggunakan editor teks , kemudian menggunakannya sebagai Anda akan setiap fungsi
MATLAB lain atau perintah.
Ada dua jenis M - file :
Script , yang tidak menerima argumen input atau kembali keluaran argumen .
Mereka beroperasi pada data di tempat kerja .
Fungsi , yang dapat menerima argumen input dan output yang kembali argumen .
Variabel internal lokal untuk fungsi .
Jika Anda seorang programmer MATLAB baru , hanya membuat M- file yang ingin Anda
coba dalam direktori saat ini . Ketika Anda mengembangkan lebih banyak sendiri M - file
Anda, Anda akan ingin mengatur mereka ke direktori lain dan kotak peralatan pribadi yang
Anda dapat menambahkan path pencarian MATLAB . Jika Anda menduplikasi nama fungsi ,
MATLAB mengeksekusi salah satu yang terjadi pertama dalam path pencarian . Untuk
melihat isi dari M - file, misalnya , myfunction.m , use type myfunction.
SCRIPT
Ketika Anda menjalankan script, MATLAB hanya mengeksekusi perintah yang ditemukan di
file. Script dapat beroperasi pada data yang ada di tempat kerja, atau mereka dapat membuat
data baru yang beroperasi. Meskipun script tidak kembali keluaran argumen, setiap variabel
bahwa mereka menciptakan tetap di tempat kerja, yang akan digunakan dalam perhitungan
selanjutnya. Selain itu, script dapat menghasilkan output grafis menggunakan fungsi seperti
petak. Misalnya, buat file bernama magicrank.m yang berisi MATLAB ini perintah.




% Investigate the rank of magic squares
r = zeros(1,32);
for n = 3:32
r(n) = rank(magic(n));
end
r
bar(r)
jenis pernyataan,
magicrank
menyebabkan MATLAB untuk mengeksekusi perintah, menghitung pangkat pertama 30
sihir kotak, dan plot grafik batang dari hasilnya. Setelah eksekusi file tersebut
lengkap, variabel n dan r tetap di tempat kerja.



FUNCTIONS
Fungsi M-file yang dapat menerima argumen input dan output yang kembali
argumen. Nama dari M-file dan fungsi harus sama. Fungsi beroperasi pada variabel dalam
ruang kerja mereka sendiri, terpisah dari ruang kerja Anda akses pada prompt perintah
MATLAB. Sebuah contoh yang baik disediakan oleh pangkat. The M-file rank.m tersedia di
direktori
toolbox/matlab/matfun
Anda dapat melihat file dengan
type rank
Berikut ini adalah file
function r = rank(A,tol)
% RANK Matrix rank.
% RANK(A) provides an estimate of the number of linearly
% independent rows or columns of a matrix A.
% RANK(A,tol) is the number of singular values of A
% that are larger than tol.
% RANK(A) uses the default tol = max(size(A)) * norm(A) * eps.
s = svd(A);
if nargin==1
tol = max(size(A)') * max(s) * eps;
end
r = sum(s > tol);
Baris pertama dari fungsi M-file dimulai dengan fungsi kata kunci. Ini memberikan
nama fungsi dan urutan argumen. Dalam hal ini, ada yang sampai dua masukan argumen dan
satu argumen output. Selanjutnya beberapa baris, hingga pertama kosong atau jalur eksekusi,
adalah komentar baris yang menyediakan teks bantuan. Garis-garis ini dicetak ketika Anda
mengetik membantu peringkat , Baris pertama teks bantuan adalah garis H1, yang MATLAB
ditampilkan saat Anda gunakan perintah lookfor atau meminta bantuan pada direktori. Sisa
dari file executable adalah kode MATLAB mendefinisikan fungsi.
Itu variabel s diperkenalkan dalam tubuh fungsi, serta variabel pada baris pertama, r, A dan
tol, semua lokal ke fungsi, mereka terpisah dari
variabel dalam MATLAB kerja.
Contoh ini menggambarkan salah satu aspek dari fungsi MATLAB yang tidak biasanya
ditemukan dalam bahasa pemrograman lain - sejumlah variabel argumen. itu
Fungsi rank dapat digunakan dalam beberapa cara berbeda.
rank(A)
r = rank(A)
r = rank(A,1.e-6)
Banyak M - file bekerja dengan cara ini . Jika ada argumen output diberikan , hasilnya adalah
disimpan dalam ans . Jika argumen input kedua tidak diberikan , fungsi menghitung nilai
default . Dalam tubuh fungsi , dua kuantitas bernama nargin dan nargout yang tersedia yang
memberitahu Anda jumlah masukan dan output argumen yang terlibat dalam setiap
penggunaan tertentu dari fungsi. Rank Fungsi menggunakan nargin , tetapi tidak perlu
menggunakan nargout .
Variabel global
Jika Anda ingin lebih dari satu fungsi untuk berbagi satu salinan dari variabel, hanya
mendeklarasikan variabel sebagai global dalam semua fungsi . Lakukan hal yang sama pada
baris perintah jika Anda ingin ruang kerja dasar untuk mengakses variabel . global deklarasi
harus terjadi sebelum variabel sebenarnya digunakan dalam fungsi . Meskipun tidak
diperlukan , menggunakan huruf kapital untuk nama-nama global variabel membantu
membedakan mereka dari variabel lain . Misalnya, membuat
M - file yang bernama falling.m .
function h = falling(t)
global GRAVITY
h = 1/2*GRAVITY*t.^2;
Kemudian interaktif masukkan pernyataan
global GRAVITY
GRAVITY = 32;
y = falling((0:.1:5)');
Dua pernyataan global yang membuat nilai yang diberikan untuk GRAVITASI di command
prompt tersedia di dalam fungsi . Anda kemudian dapat memodifikasi GRAVITASI interaktif
dan mendapatkan solusi baru tanpa mengedit file apapun.

Passing Argumen String Fungsi
Anda dapat menulis fungsi MATLAB yang menerima argumen string yang tanpa
kurung dan kutipan. Artinya, Matlab menafsirkan
foo a b c
as
foo('a','b','c')
Namun, bila menggunakan bentuk kuotasi, MATLAB tidak bisa kembali keluaran
argumen. Sebagai contoh,
legend apples oranges
menciptakan legenda di sebidang menggunakan string apel dan jeruk sebagai label. Jika Anda
ingin perintah legenda untuk kembali argumen output, maka Anda harus menggunakan
dikutip bentuk.
[legh,objh] = legend('apples','oranges');
Selain itu, Anda tidak dapat menggunakan bentuk kuotasi jika salah satu argumen yang tidak
string.
Membangun Argumen String dalam Kode
Bentuk dikutip memungkinkan Anda untuk membangun argumen string di dalam kode.
Contoh berikut proses file data ganda, August1.dat, August2.dat, dan sebagainya. Ia
menggunakan int2str fungsi, yang mengubah integer untuk karakter, untuk membangun nama
file.




for d = 1:31
s = ['August' int2str(d) '.dat'];
load(s)
% Code to process the contents of the d-th file
end

Sebuah Catatan Peringatan
Sedangkan sintaks kuotasi nyaman, dapat digunakan secara tidak benar tanpa menyebabkan
MATLAB untuk menghasilkan kesalahan. Sebagai contoh, diberikan matriks A,
A =
0 -6 -1
6 2 -16
-5 20 -10
Perintah EIG mengembalikan nilai eigen dari A.
eig(A)
ans =
-3.0710
-2.4645+17.6008i
-2.4645-17.6008i
Pernyataan berikut ini tidak diperbolehkan karena A bukan string, namun
MATLAB tidak menghasilkan kesalahan.
eig A
ans =
65
MATLAB benar-benar membutuhkan nilai eigen setara numerik ASCII Sebuah surat (yang
merupakan nomor 65).
FUNGSI EVAL
Fungsi eval bekerja dengan variabel teks untuk menerapkan teks yang kuat
fasilitas makro. Ekspresi atau Pernyataan
eval(s)

menggunakan interpreter MATLAB untuk mengevaluasi ekspresi atau mengeksekusi
Pernyataan yang terkandung dalam teks string s. Contoh dari bagian sebelumnya juga bisa
dilakukan dengan kode berikut, meskipun ini akan menjadi agak kurang efisien karena
melibatkan penuh penerjemah, bukan hanya panggilan fungsi.
for d = 1:31
s = ['load August' int2str(d) '.dat'];
eval(s)
% Process the contents of the d-th file
end

vektorisasi
Untuk mendapatkan kecepatan yang paling dari MATLAB, penting untuk vectorize yang
algoritma dalam M-file Anda. Dimana bahasa pemrograman lain mungkin digunakan untuk
atau DO loop, MATLAB dapat menggunakan operasi vektor atau matriks. Sebuah contoh
sederhana
melibatkan menciptakan tabel logaritma.
x = .01;
for k = 1:1001
y(k) = log10(x);
x = x + .01;
end
Sebuah versi vectorized dari kode yang sama
x = .01:.01:10;
y = log10(x);
Untuk kode lebih rumit , pilihan vektorisasi tidak selalu begitu jelas . Ketika kecepatan
adalah penting , namun, Anda harus selalu mencari cara untuk vectorize algoritma Anda .

Preallocation
Jika Anda tidak dapat vectorize sepotong kode , Anda dapat membuat loop untuk pergi lebih
cepat dengan preallocating setiap vektor atau array di mana hasil output disimpan . untuk
Misalnya , kode ini menggunakan nol fungsi untuk preallocate vektor dibuat dalam untuk
loop . Hal ini membuat untuk loop mengeksekusi secara signifikan lebih cepat .


r = zeros(32,1);
for n = 1:32
r(n) = rank(magic(n));
end
Tanpa preallocation pada contoh sebelumnya , penafsir MATLAB memperbesar vektor r oleh
satu elemen setiap kali melalui loop . vector preallocation menghilangkan langkah ini dan
hasil dalam eksekusi lebih cepat .

fungsi Menangani
Anda dapat membuat pegangan untuk setiap fungsi MATLAB dan kemudian menggunakan
pegangan itu sebagai suatu sarana referensi fungsi . Sebuah menangani fungsi biasanya
berlalu dalam daftar argumen ke fungsi lain , yang kemudian dapat mengeksekusi , atau
mengevaluasi , yang fungsi menggunakan pegangan Buatlah pegangan fungsi dalam
MATLAB menggunakan tanda at, @, sebelum nama fungsi. Contoh berikut membuat
pegangan fungsi untuk dosa fungsi dan memberikan ke fhandle variabel.
fhandle = @sin;
Mengevaluasi menangani fungsi menggunakan fungsi MATLAB feval. fungsi
plot_fhandle, ditunjukkan di bawah ini, menerima menangani fungsi dan data, dan kemudian
melakukan evaluasi pegangan fungsi pada data menggunakan feval.
function x = plot_fhandle(fhandle, data)
plot(data, feval(fhandle, data))
Ketika Anda menelepon plot_fhandle dengan pegangan untuk fungsi dosa dan
Argumen yang ditunjukkan di bawah, evaluasi yang dihasilkan menghasilkan plot gelombang
sinus.
plot_fhandle(@sin, -pi:0.01:pi)

fungsi fungsi
Sebuah kelas fungsi, yang disebut "fungsi fungsi," bekerja dengan fungsi nonlinier
dari variabel skalar. Artinya, satu fungsi bekerja pada fungsi lain. itu
fungsi fungsi meliputi:
Nol Temuan
Optimalisasi
Quadrature
persamaan diferensial biasa
MATLAB merupakan fungsi nonlinier dengan fungsi M-file. Sebagai contoh,
di sini adalah versi sederhana dari gundukan-gundukan fungsi dari Matlab / demo
direktori.
function y = humps(x)
y = 1./((x-.3).^2 + .01) + 1./((x-.9).^2 + .04) - 6;
Evaluasi fungsi ini pada set poin dalam interval 0 x 1 dengan
x = 0:.002:1;
y = humps(x);
Kemudian plot fungsi dengan
plot(x,y)
Grafik menunjukkan bahwa fungsi memiliki minimum lokal dekat x = 0,6. itu
Fungsi fminsearch menemukan minimizer, nilai x dimana fungsi
mengambil minimum ini. Argumen pertama yang fminsearch adalah menangani fungsi
untuk fungsi yang diminimalkan dan argumen kedua adalah tebakan kasar
lokasi minimum.

p = fminsearch(@humps,.5)
p =
0.6370
Untuk mengevaluasi fungsi pada minimizer,
humps(p)
ans =
11.2528
Angka analis menggunakan istilah kuadratur dan integrasi untuk membedakan
antara pendekatan numerik integral tertentu dan numerik
integrasi persamaan diferensial biasa. Rutinitas quadrature MATLAB
quad dan quadl. Pernyataan
Q = quadl(@humps,0,1)
menghitung luas area di bawah kurva dalam grafik dan menghasilkan
Q =
29.8583
Akhirnya, grafik menunjukkan bahwa fungsi ini tidak pernah nol pada interval ini. Jadi, jika
Anda mencari nol dengan
z = fzero(@humps,.5)
Anda akan menemukan satu di luar interval
z =
-0.1316

Program Demonstrasi Termasuk dengan MATLAB
MATLAB mencakup banyak program demonstrasi yang menyoroti berbagai fitur dan fungsi.
Untuk daftar lengkap dari demo, pada command prompt ketik
help demos
Untuk melihat file tertentu, misalnya, airfoil, jenis
edit airfoil
Untuk menjalankan demonstrasi, ketik nama file pada command prompt. Untuk Misalnya,
untuk menjalankan demonstrasi airfoil, jenis
Airfoil
NOTE : Banyak demonstrasi menggunakan beberapa jendela dan meminta Anda untuk
tekan tombol di MATLAB Command Window untuk melanjutkan melalui
demonstrasi.
Tabel berikut daftar beberapa program demonstrasi saat ini yang
tersedia, disusun dalam kategori berikut:
Matrix demo
Numeric demo
demo Visualisasi
Bahasa demo
ODE Suite demo
Gallery demo
Permainan demo
Miscellaneous demo
demo fungsi Helper






Mendapatkan Informasi Lebih Lanjut
Situs web MathWorks (www.mathworks.com) mengandung banyak M-file yang telah
ditambahkan oleh pengguna dan staf MathWorks. Ini dapat diakses oleh memilih Downloads.
Juga, Catatan Teknis, yang dapat diakses dari kami Situs Web Dukungan Teknis
(www.mathworks.com / support), mengandung banyak contoh pada grafis, matematika, API,
Simulink, dan lain-lain.