MATLAB - Panduan Cepat
MATLAB (laboratorium matriks) adalah bahasa pemrograman tingkat tinggi generasi keempat dan lingkungan interaktif untuk komputasi numerik, visualisasi, dan pemrograman.
MATLAB dikembangkan oleh MathWorks.
Ini memungkinkan manipulasi matriks; merencanakan fungsi dan data; implementasi algoritma; pembuatan antarmuka pengguna; berinteraksi dengan program yang ditulis dalam bahasa lain, termasuk C, C ++, Java, dan FORTRAN; menganalisis data; mengembangkan algoritma; dan membuat model dan aplikasi.
Ini memiliki banyak perintah bawaan dan fungsi matematika yang membantu Anda dalam perhitungan matematika, menghasilkan plot, dan melakukan metode numerik.
Kekuatan Matematika Komputasi MATLAB
MATLAB digunakan dalam setiap aspek matematika komputasi. Berikut adalah beberapa perhitungan matematis yang umum digunakan yang paling sering digunakan -
- Berurusan dengan Matriks dan Array
- 2-D dan 3-D Plotting dan grafik
- Aljabar linier
- Persamaan Aljabar
- Fungsi Non-linier
- Statistics
- Analisis data
- Kalkulus dan Persamaan Diferensial
- Perhitungan Numerik
- Integration
- Transforms
- Pemasangan Kurva
- Berbagai fungsi khusus lainnya
Fitur MATLAB
Berikut adalah fitur dasar MATLAB -
Ini adalah bahasa tingkat tinggi untuk komputasi numerik, visualisasi, dan pengembangan aplikasi.
Ini juga menyediakan lingkungan interaktif untuk eksplorasi berulang, desain dan pemecahan masalah.
Ini menyediakan perpustakaan yang luas dari fungsi matematika untuk aljabar linier, statistik, analisis Fourier, pemfilteran, pengoptimalan, integrasi numerik dan penyelesaian persamaan diferensial biasa.
Ini menyediakan grafik built-in untuk memvisualisasikan data dan alat untuk membuat plot kustom.
Antarmuka pemrograman MATLAB memberikan alat pengembangan untuk meningkatkan pemeliharaan kualitas kode dan memaksimalkan kinerja.
Ini menyediakan alat untuk membangun aplikasi dengan antarmuka grafis khusus.
Ini menyediakan fungsi untuk mengintegrasikan algoritma berbasis MATLAB dengan aplikasi eksternal dan bahasa seperti C, Java, .NET dan Microsoft Excel.
Kegunaan MATLAB
MATLAB banyak digunakan sebagai alat komputasi dalam sains dan teknik yang mencakup bidang fisika, kimia, matematika, dan semua aliran teknik. Ini digunakan dalam berbagai aplikasi termasuk -
- Pemrosesan Sinyal dan Komunikasi
- Pemrosesan Gambar dan Video
- Sistem kontrol
- Tes dan Pengukuran
- Keuangan Komputasi
- Biologi Komputasi
Pengaturan Lingkungan Lokal
Menyiapkan lingkungan MATLAB hanya dengan beberapa klik. Penginstal dapat diunduh dari sini .
MathWorks menyediakan produk berlisensi, versi uji coba, dan versi siswa juga. Anda perlu masuk ke situs dan menunggu sedikit untuk persetujuan mereka.
Setelah mengunduh penginstal, perangkat lunak dapat diinstal melalui beberapa klik.
Memahami Lingkungan MATLAB
IDE pengembangan MATLAB dapat diluncurkan dari ikon yang dibuat di desktop. Jendela kerja utama di MATLAB disebut desktop. Saat MATLAB dimulai, desktop muncul dalam tata letak default -
Desktop memiliki panel berikut -
Current Folder - Panel ini memungkinkan Anda mengakses folder dan file proyek.
Command Window- Ini adalah area utama di mana perintah dapat dimasukkan pada baris perintah. Ini ditunjukkan oleh prompt perintah (>>).
Workspace - Ruang kerja menampilkan semua variabel yang dibuat dan / atau diimpor dari file.
Command History - Panel ini menampilkan atau mengembalikan perintah yang dimasukkan pada baris perintah.
Siapkan GNU Octave
Jika Anda ingin menggunakan Octave di mesin Anda (Linux, BSD, OS X atau Windows), silakan unduh versi terbaru dari Download GNU Octave . Anda dapat memeriksa instruksi instalasi yang diberikan untuk mesin Anda.
Lingkungan MATLAB berperilaku seperti kalkulator super kompleks. Anda dapat memasukkan perintah di >> command prompt.
MATLAB adalah lingkungan yang ditafsirkan. Dengan kata lain, Anda memberikan perintah dan MATLAB langsung menjalankannya.
Praktik Langsung
Ketikkan ekspresi yang valid, misalnya,
5 + 5
Dan tekan ENTER
Ketika Anda mengklik tombol Execute, atau mengetik Ctrl + E, MATLAB segera menjalankannya dan hasil yang dikembalikan adalah -
ans = 10
Mari kita ambil beberapa contoh lagi -
3 ^ 2 % 3 raised to the power of 2
Ketika Anda mengklik tombol Execute, atau mengetik Ctrl + E, MATLAB segera menjalankannya dan hasil yang dikembalikan adalah -
ans = 9
Contoh lain,
sin(pi /2) % sine of angle 90o
Ketika Anda mengklik tombol Execute, atau mengetik Ctrl + E, MATLAB segera menjalankannya dan hasil yang dikembalikan adalah -
ans = 1
Contoh lain,
7/0 % Divide by zero
Ketika Anda mengklik tombol Execute, atau mengetik Ctrl + E, MATLAB segera menjalankannya dan hasil yang dikembalikan adalah -
ans = Inf
warning: division by zero
Contoh lain,
732 * 20.3
Ketika Anda mengklik tombol Execute, atau mengetik Ctrl + E, MATLAB segera menjalankannya dan hasil yang dikembalikan adalah -
ans = 1.4860e+04
MATLAB menyediakan beberapa ekspresi khusus untuk beberapa simbol matematika, seperti pi untuk π, Inf untuk ∞, i (dan j) untuk √-1 dll. Nan singkatan dari 'bukan angka'.
Penggunaan Titik Koma (;) di MATLAB
Titik koma (;) menunjukkan akhir pernyataan. Namun, jika Anda ingin menyembunyikan dan menyembunyikan output MATLAB untuk ekspresi, tambahkan titik koma setelah ekspresi.
Sebagai contoh,
x = 3;
y = x + 5
Ketika Anda mengklik tombol Execute, atau mengetik Ctrl + E, MATLAB segera menjalankannya dan hasil yang dikembalikan adalah -
y = 8
Menambahkan Komentar
Simbol persen (%) digunakan untuk menunjukkan baris komentar. Sebagai contoh,
x = 9 % assign the value 9 to x
Anda juga dapat menulis blok komentar menggunakan operator blokir komentar% {dan%}.
Editor MATLAB menyertakan alat dan item menu konteks untuk membantu Anda menambah, menghapus, atau mengubah format komentar.
Operator yang umum digunakan dan Karakter Khusus
MATLAB mendukung operator yang umum digunakan dan karakter khusus berikut -
Operator | Tujuan |
---|---|
+ | Plus; operator tambahan. |
- | Minus; operator pengurangan. |
* | Operator perkalian skalar dan matriks. |
.* | Operator perkalian array. |
^ | Operator eksponensial skalar dan matriks. |
.^ | Operator eksponen array. |
\ | Operator divisi kiri. |
/ | Operator divisi kanan. |
.\ | Larik operator divisi kiri. |
./ | Larik operator divisi kanan. |
: | Usus besar; menghasilkan elemen dengan jarak teratur dan mewakili seluruh baris atau kolom. |
( ) | Tanda kurung; menyertakan argumen fungsi dan indeks larik; mengesampingkan prioritas. |
[ ] | Tanda kurung; mengurung elemen array. |
. | Titik desimal. |
… | Elipsis; operator kelanjutan jalur |
, | Koma; memisahkan pernyataan dan elemen dalam satu baris |
; | Titik koma; memisahkan kolom dan menyembunyikan tampilan. |
% | Tanda persen; menunjuk komentar dan menentukan pemformatan. |
_ | Tanda kutip dan operator transpos. |
._ | Operator transpos tidak terkonjugasi. |
= | Operator penugasan. |
Variabel dan Konstanta Khusus
MATLAB mendukung variabel dan konstanta khusus berikut -
Nama | Berarti |
---|---|
ans | Jawaban terbaru. |
eps | Akurasi presisi floating-point. |
i,j | Satuan imajiner √-1. |
Inf | Infinity. |
NaN | Hasil numerik tidak ditentukan (bukan angka). |
pi | Angka π |
Variabel Penamaan
Nama variabel terdiri dari huruf yang diikuti dengan sejumlah huruf, angka, atau garis bawah.
MATLAB adalah case-sensitive.
Nama variabel bisa berapa pun panjangnya, namun MATLAB hanya menggunakan karakter N pertama, di mana N diberikan oleh fungsinya namelengthmax.
Menyimpan Pekerjaan Anda
Itu save perintah digunakan untuk menyimpan semua variabel di ruang kerja, sebagai file dengan ekstensi .mat, di direktori saat ini.
Sebagai contoh,
save myfile
Anda dapat memuat ulang file kapan saja nanti menggunakan load perintah.
load myfile
Dalam lingkungan MATLAB, setiap variabel adalah array atau matriks.
Anda dapat menetapkan variabel dengan cara yang sederhana. Sebagai contoh,
x = 3 % defining x and initializing it with a value
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
x = 3
Ini membuat matriks 1-oleh-1 bernama x dan menyimpan nilai 3 dalam elemennya. Mari kita periksa contoh lainnya,
x = sqrt(16) % defining x and initializing it with an expression
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
x = 4
Harap dicatat bahwa -
Setelah variabel dimasukkan ke dalam sistem, Anda dapat merujuknya nanti.
Variabel harus memiliki nilai sebelum digunakan.
Ketika ekspresi mengembalikan hasil yang tidak ditetapkan ke variabel apa pun, sistem menetapkannya ke variabel bernama ans, yang dapat digunakan nanti.
Sebagai contoh,
sqrt(78)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 8.8318
Anda dapat menggunakan variabel ini ans -
sqrt(78);
9876/ans
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 1118.2
Mari kita lihat contoh lain -
x = 7 * 8;
y = x * 7.89
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
y = 441.84
Tugas Ganda
Anda dapat memiliki banyak tugas di baris yang sama. Sebagai contoh,
a = 2; b = 7; c = a * b
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
c = 14
Saya telah melupakan Variabel!
Itu who perintah menampilkan semua nama variabel yang telah Anda gunakan.
who
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
Your variables are:
a ans b c
Itu whos perintah menampilkan lebih banyak tentang variabel -
- Variabel saat ini dalam memori
- Jenis setiap variabel
- Memori dialokasikan untuk setiap variabel
- Apakah itu variabel kompleks atau bukan
whos
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
Attr Name Size Bytes Class
==== ==== ==== ==== =====
a 1x1 8 double
ans 1x70 757 cell
b 1x1 8 double
c 1x1 8 double
Total is 73 elements using 781 bytes
Itu clear perintah menghapus semua (atau variabel tertentu) dari memori.
clear x % it will delete x, won't display anything
clear % it will delete all variables in the workspace
% peacefully and unobtrusively
Tugas Panjang
Penugasan yang panjang dapat diperpanjang ke baris lain dengan menggunakan elipsis (...). Sebagai contoh,
initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity + acceleration * time
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
final_velocity = 196
Perintah format
Secara default, MATLAB menampilkan angka dengan empat nilai tempat desimal. Ini dikenal sebagaishort format.
Namun, jika Anda ingin lebih presisi, Anda perlu menggunakan file format perintah.
Itu format long Perintah menampilkan 16 digit setelah desimal.
Misalnya -
format long
x = 7 + 10/3 + 5 ^ 1.2
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut-
x = 17.2319816406394
Contoh lain,
format short
x = 7 + 10/3 + 5 ^ 1.2
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
x = 17.232
Itu format bankperintah membulatkan angka ke dua tempat desimal. Sebagai contoh,
format bank
daily_wage = 177.45;
weekly_wage = daily_wage * 6
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
weekly_wage = 1064.70
MATLAB menampilkan angka besar menggunakan notasi eksponensial.
Itu format short e perintah memungkinkan menampilkan dalam bentuk eksponensial dengan empat tempat desimal ditambah eksponen.
Sebagai contoh,
format short e
4.678 * 4.9
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 2.2922e+01
Itu format long eperintah memungkinkan menampilkan dalam bentuk eksponensial dengan empat tempat desimal ditambah eksponen. Sebagai contoh,
format long e
x = pi
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
x = 3.141592653589793e+00
Itu format ratperintah memberikan ekspresi rasional terdekat yang dihasilkan dari perhitungan. Sebagai contoh,
format rat
4.678 * 4.9
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 34177/1491
Membuat Vektor
Vektor adalah deretan angka satu dimensi. MATLAB memungkinkan pembuatan dua jenis vektor -
- Vektor baris
- Vektor kolom
Row vectors dibuat dengan mengapit kumpulan elemen dalam tanda kurung siku, menggunakan spasi atau koma untuk membatasi elemen.
Sebagai contoh,
r = [7 8 9 10 11]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
r =
7 8 9 10 11
Contoh lain,
r = [7 8 9 10 11];
t = [2, 3, 4, 5, 6];
res = r + t
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
res =
9 11 13 15 17
Column vectors dibuat dengan mengapit kumpulan elemen dalam tanda kurung siku, menggunakan titik koma (;) untuk membatasi elemen.
c = [7; 8; 9; 10; 11]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
c =
7
8
9
10
11
Membuat Matriks
Matriks adalah deretan angka dua dimensi.
Di MATLAB, matriks dibuat dengan memasukkan setiap baris sebagai urutan elemen yang dipisahkan oleh spasi atau koma, dan ujung baris dibatasi oleh titik koma. Misalnya, mari kita buat matriks 3-kali-3 sebagai -
m = [1 2 3; 4 5 6; 7 8 9]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
m =
1 2 3
4 5 6
7 8 9
MATLAB adalah program interaktif untuk komputasi numerik dan visualisasi data. Anda dapat memasukkan perintah dengan mengetiknya di MATLAB prompt '>>' diCommand Window.
Di bagian ini, kami akan memberikan daftar perintah MATLAB umum yang umum digunakan.
Perintah untuk Mengelola Sesi
MATLAB menyediakan berbagai perintah untuk mengelola sesi. Tabel berikut menyediakan semua perintah seperti itu -
Perintah | Tujuan |
---|---|
clc | Menghapus jendela perintah. |
bersih | Menghapus variabel dari memori. |
ada | Memeriksa keberadaan file atau variabel. |
global | Menyatakan variabel menjadi global. |
Tolong | Mencari topik bantuan. |
mencari | Mencari entri bantuan untuk kata kunci. |
berhenti | Menghentikan MATLAB. |
WHO | Daftar variabel saat ini. |
siapa | Daftar variabel saat ini (tampilan panjang). |
Perintah untuk Bekerja dengan Sistem
MATLAB menyediakan berbagai perintah yang berguna untuk bekerja dengan sistem, seperti menyimpan pekerjaan saat ini di ruang kerja sebagai file dan memuat file nanti.
Ini juga menyediakan berbagai perintah untuk aktivitas terkait sistem lainnya seperti, menampilkan tanggal, membuat daftar file di direktori, menampilkan direktori saat ini, dll.
Tabel berikut menampilkan beberapa perintah terkait sistem yang umum digunakan -
Perintah | Tujuan |
---|---|
CD | Mengubah direktori saat ini. |
tanggal | Menampilkan tanggal sekarang. |
menghapus | Menghapus file. |
buku harian | Mengaktifkan / menonaktifkan perekaman file buku harian. |
dir | Mencantumkan semua file di direktori saat ini. |
beban | Memuat variabel ruang kerja dari file. |
jalan | Menampilkan jalur pencarian. |
pwd | Menampilkan direktori saat ini. |
menyimpan | Menyimpan variabel ruang kerja dalam sebuah file. |
Tipe | Menampilkan konten file. |
apa | Daftar semua file MATLAB dalam direktori saat ini. |
wklread.dll | Membaca file spreadsheet .wk1. |
Perintah Input dan Output
MATLAB menyediakan perintah terkait input dan output berikut -
Perintah | Tujuan |
---|---|
disp | Menampilkan konten larik atau string. |
fscanf.dll | Membaca data yang diformat dari file. |
format | Mengontrol format tampilan layar. |
fprintf | Melakukan penulisan yang diformat ke layar atau file. |
memasukkan | Menampilkan prompt dan menunggu input. |
; | Menekan pencetakan layar. |
Itu fscanf dan fprintfperintah berperilaku seperti C scanf dan fungsi printf. Mereka mendukung kode format berikut -
Kode Format | Tujuan |
---|---|
%s | Format sebagai string. |
%d | Format sebagai bilangan bulat. |
%f | Format sebagai nilai titik mengambang. |
%e | Format sebagai nilai floating point dalam notasi ilmiah. |
%g | Format dalam bentuk paling ringkas:% f atau% e. |
\n | Sisipkan baris baru di string keluaran. |
\t | Sisipkan tab di string keluaran. |
Fungsi format memiliki bentuk berikut yang digunakan untuk tampilan numerik -
Fungsi Format | Tampilkan hingga |
---|---|
format pendek | Empat digit desimal (default). |
format panjang | 16 digit desimal. |
format pendek e | Lima digit ditambah eksponen. |
format panjang e | 16 digit ditambah eksponen. |
format bank | Dua digit desimal. |
format + | Positif, negatif, atau nol. |
format tikus | Pendekatan rasional. |
format kompak | Menekan beberapa baris feed. |
format longgar | Mengatur ulang ke mode tampilan yang kurang ringkas. |
Perintah Vektor, Matriks dan Array
Tabel berikut menunjukkan berbagai perintah yang digunakan untuk bekerja dengan array, matriks, dan vektor -
Perintah | Tujuan |
---|---|
kucing | Menggabungkan array. |
Temukan | Menemukan indeks elemen bukan nol. |
panjangnya | Menghitung jumlah elemen. |
linspace | Membuat vektor dengan jarak teratur. |
logspace | Membuat vektor dengan spasi logaritmik. |
maks | Mengembalikan elemen terbesar. |
min | Mengembalikan elemen terkecil. |
melecut | Produk dari setiap kolom. |
membentuk kembali | Ubah ukuran. |
ukuran | Menghitung ukuran array. |
menyortir | Mengurutkan setiap kolom. |
jumlah | Menjumlahkan setiap kolom. |
mata | Membuat matriks identitas. |
satu | Membuat array. |
nol | Membuat larik nol. |
menyeberang | Menghitung produk persilangan matriks. |
dot | Menghitung produk titik matriks. |
det | Menghitung determinan dari sebuah larik. |
inv | Menghitung invers dari sebuah matriks. |
pinv | Menghitung pseudoinverse dari sebuah matriks. |
pangkat | Menghitung peringkat matriks. |
rref | Menghitung bentuk eselon baris tereduksi. |
sel | Membuat array sel. |
celldisp | Menampilkan array sel. |
plot sel | Menampilkan representasi grafis dari larik sel. |
num2cell | Mengonversi larik numerik menjadi larik sel. |
Sepakat | Cocok dengan daftar masukan dan keluaran. |
iscell | Mengidentifikasi array sel. |
Perintah Plotting
MATLAB menyediakan banyak perintah untuk merencanakan grafik. Tabel berikut menunjukkan beberapa perintah yang umum digunakan untuk plotting -
Perintah | Tujuan |
---|---|
sumbu | Tetapkan batas sumbu. |
fplot.dll | Plot fungsi yang cerdas. |
jaringan | Menampilkan garis kisi. |
merencanakan | Menghasilkan plot xy. |
mencetak | Mencetak plot atau menyimpan plot ke file. |
judul | Menempatkan teks di atas plot. |
xlabel | Menambahkan label teks ke sumbu x. |
ylabel | Menambahkan label teks ke sumbu y. |
sumbu | Membuat objek sumbu. |
Menutup | Menutup plot saat ini. |
tutup semua | Menutup semua plot. |
angka | Membuka jendela gambar baru. |
gtext | Memungkinkan penempatan label dengan mouse. |
memegang | Membekukan plot saat ini. |
legenda | Penempatan legenda dengan mouse. |
menyegarkan | Menggambar ulang jendela gambar saat ini. |
set | Menentukan properti objek seperti sumbu. |
subplot | Membuat plot di subwindows. |
teks | Menempatkan string dalam gambar. |
batang | Membuat diagram batang. |
loglog | Membuat plot log-log. |
kutub | Membuat plot kutub. |
semilogx | Membuat plot semilog. (absis logaritmik). |
semilogi | Membuat plot semilog. (ordinat logaritmik). |
tangga | Membuat plot tangga. |
batang | Membuat plot batang. |
Sejauh ini, kami telah menggunakan lingkungan MATLAB sebagai kalkulator. Namun, MATLAB juga merupakan bahasa pemrograman yang kuat, serta lingkungan komputasi yang interaktif.
Pada bab sebelumnya, Anda telah mempelajari cara memasukkan perintah dari command prompt MATLAB. MATLAB juga memungkinkan Anda untuk menulis serangkaian perintah ke dalam file dan mengeksekusi file sebagai unit lengkap, seperti menulis fungsi dan memanggilnya.
File M
MATLAB memungkinkan penulisan dua jenis file program -
Scripts - file script adalah file program dengan .m extension. Dalam file ini, Anda menulis serangkaian perintah, yang ingin Anda jalankan bersama. Skrip tidak menerima masukan dan tidak mengembalikan keluaran apa pun. Mereka mengoperasikan data di ruang kerja.
Functions - file fungsi juga file program dengan .m extension. Fungsi dapat menerima masukan dan mengembalikan keluaran. Variabel internal bersifat lokal ke fungsi.
Anda dapat menggunakan editor MATLAB atau editor teks lainnya untuk membuat file .mfile. Pada bagian ini, kita akan membahas file script. File skrip berisi beberapa baris berurutan dari perintah MATLAB dan pemanggilan fungsi. Anda dapat menjalankan skrip dengan mengetikkan namanya di baris perintah.
Membuat dan Menjalankan File Script
Untuk membuat file skrip, Anda perlu menggunakan editor teks. Anda dapat membuka editor MATLAB dengan dua cara -
- Menggunakan command prompt
- Menggunakan IDE
Jika Anda menggunakan prompt perintah, ketik editdi prompt perintah. Ini akan membuka editor. Anda bisa langsung mengetikedit dan kemudian nama file (dengan ekstensi .m)
edit
Or
edit <filename>
Perintah di atas akan membuat file dalam direktori MATLAB default. Jika Anda ingin menyimpan semua file program dalam folder tertentu, maka Anda harus menyediakan seluruh jalur.
Mari kita buat folder bernama progs. Ketik perintah berikut di prompt perintah (>>) -
mkdir progs % create directory progs under default directory
chdir progs % changing the current directory to progs
edit prog1.m % creating an m file named prog1.m
Jika Anda membuat file untuk pertama kalinya, MATLAB meminta Anda untuk mengkonfirmasinya. Klik Yes.
Alternatifnya, jika Anda menggunakan IDE, pilih NEW -> Script. Ini juga membuka editor dan membuat file bernama Untitled. Anda dapat memberi nama dan menyimpan file setelah mengetik kode.
Ketik kode berikut di editor -
NoOfStudents = 6000;
TeachingStaff = 150;
NonTeachingStaff = 20;
Total = NoOfStudents + TeachingStaff ...
+ NonTeachingStaff;
disp(Total);
Setelah membuat dan menyimpan file, Anda dapat menjalankannya dengan dua cara -
Mengklik Run pada jendela editor atau
Cukup ketikkan nama file (tanpa ekstensi) di command prompt: >> prog1
Prompt jendela perintah menampilkan hasilnya -
6170
Contoh
Buat file script, dan ketik kode berikut -
a = 5; b = 7;
c = a + b
d = c + sin(b)
e = 5 * d
f = exp(-d)
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
c = 12
d = 12.657
e = 63.285
f = 3.1852e-06
MATLAB tidak memerlukan deklarasi tipe atau pernyataan dimensi apa pun. Setiap kali MATLAB menemukan nama variabel baru, itu membuat variabel dan mengalokasikan ruang memori yang sesuai.
Jika variabel sudah ada, MATLAB mengganti konten asli dengan konten baru dan mengalokasikan ruang penyimpanan baru, jika perlu.
Sebagai contoh,
Total = 42
Pernyataan di atas membuat matriks 1-oleh-1 bernama 'Total' dan menyimpan nilai 42 di dalamnya.
Jenis Data Tersedia di MATLAB
MATLAB menyediakan 15 tipe data fundamental. Setiap tipe data menyimpan data yang berbentuk matriks atau larik. Ukuran matriks atau larik ini minimal 0-kali-0 dan dapat berkembang menjadi matriks atau larik dengan ukuran berapa pun.
Tabel berikut menunjukkan tipe data yang paling umum digunakan di MATLAB -
Sr.No. | Tipe & Deskripsi Data |
---|---|
1 | int8 Integer bertanda 8-bit |
2 | uint8 Integer 8-bit unsigned |
3 | int16 Integer bertanda tangan 16-bit |
4 | uint16 Integer 16-bit unsigned |
5 | int32 Integer bertanda tangan 32-bit |
6 | uint32 Integer 32-bit unsigned |
7 | int64 Integer 64-bit |
8 | uint64 Integer 64-bit unsigned |
9 | single data numerik presisi tunggal |
10 | double data numerik presisi ganda |
11 | logical nilai logika 1 atau 0, masing-masing mewakili benar dan salah |
12 | char data karakter (string disimpan sebagai vektor karakter) |
13 | cell array larik sel yang diindeks, masing-masing mampu menyimpan larik dengan dimensi dan tipe data yang berbeda |
14 | structure Struktur mirip C, setiap struktur memiliki bidang bernama yang mampu menyimpan larik dengan dimensi dan tipe data yang berbeda |
15 | function handle penunjuk ke suatu fungsi |
16 | user classes objek yang dibangun dari kelas yang ditentukan pengguna |
17 | java classes objek yang dibangun dari kelas Java |
Contoh
Buat file skrip dengan kode berikut -
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
str = Hello World!
n = 2345
d = 2345
un = 790
rn = 5678.9
c = 5679
Konversi Jenis Data
MATLAB menyediakan berbagai fungsi untuk mengkonversi, nilai dari satu tipe data ke tipe lainnya. Tabel berikut menunjukkan fungsi konversi tipe data -
Fungsi | Tujuan |
---|---|
arang | Ubah ke array karakter (string) |
int2str | Ubah data integer menjadi string |
mat2str | Ubah matriks menjadi string |
num2str | Ubah angka menjadi string |
str2double | Ubah string menjadi nilai presisi ganda |
str2num | Ubah string menjadi angka |
native2unicode.dll | Ubah byte numerik menjadi karakter Unicode |
unicode2native | Ubah karakter Unicode menjadi byte numerik |
base2dec | Ubah string angka dasar N menjadi angka desimal |
bin2dec | Ubah string angka biner menjadi angka desimal |
dec2base | Ubah desimal menjadi bilangan basis N dalam string |
dec2bin | Ubah desimal menjadi bilangan biner dalam string |
dec2hex | Ubah desimal menjadi bilangan heksadesimal dalam string |
hex2dec | Ubah string angka heksadesimal menjadi angka desimal |
hex2num | Ubah string angka heksadesimal menjadi angka presisi ganda |
num2hex | Ubah single dan double menjadi string heksadesimal IEEE |
cell2mat | Ubah larik sel menjadi larik numerik |
cell2struct | Ubah larik sel menjadi larik struktur |
cellstr | Buat array sel string dari array karakter |
mat2cell | Mengonversi larik menjadi larik sel dengan ukuran sel yang berpotensi berbeda |
num2cell | Mengonversi larik menjadi larik sel dengan sel berukuran konsisten |
struct2cell | Ubah struktur menjadi larik sel |
Penentuan Jenis Data
MATLAB menyediakan berbagai fungsi untuk mengidentifikasi tipe data variabel.
Tabel berikut menyediakan fungsi untuk menentukan tipe data variabel -
Fungsi | Tujuan |
---|---|
adalah | Deteksi status |
adalah | Tentukan apakah input adalah objek dari kelas yang ditentukan |
iscell | Tentukan apakah masukan adalah larik sel |
iscellstr | Tentukan apakah masukan adalah larik sel string |
ischar | Tentukan apakah item adalah array karakter |
isfield | Tentukan apakah masukan adalah bidang larik struktur |
terapung | Tentukan apakah input berupa array floating-point |
ishghandle | Benar untuk menangani objek Menangani Grafik |
isinteger | Tentukan apakah input adalah array integer |
isjava | Tentukan apakah masukan adalah objek Java |
islogical | Tentukan apakah masukan adalah larik logis |
isnumerik | Tentukan apakah masukan berupa larik numerik |
isobject | Tentukan apakah input adalah objek MATLAB |
adalah nyata | Periksa apakah masukan adalah larik nyata |
isscalar.dll | Tentukan apakah masukan adalah skalar |
isstr | Tentukan apakah masukan berupa larik karakter |
isstruct | Tentukan apakah masukan adalah larik struktur |
isvector | Tentukan apakah masukan adalah vektor |
kelas | Tentukan kelas objek |
validateattributes | Periksa validitas array |
siapa | Buat daftar variabel di ruang kerja, dengan ukuran dan jenis |
Contoh
Buat file skrip dengan kode berikut -
x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
Saat Anda menjalankan file, ini menghasilkan hasil sebagai berikut -
x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 23.540
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =
1 2 3
ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0
Operator adalah simbol yang memberi tahu kompiler untuk melakukan manipulasi matematika atau logika tertentu. MATLAB dirancang untuk beroperasi terutama pada seluruh matriks dan array. Oleh karena itu, operator di MATLAB bekerja pada data skalar dan non-skalar. MATLAB memungkinkan jenis operasi dasar berikut -
- Operator Aritmatika
- Operator Relasional
- Operator Logis
- Operasi Bitwise
- Atur Operasi
Operator Aritmatika
MATLAB memungkinkan dua jenis operasi aritmatika -
- Operasi aritmatika matriks
- Operasi aritmatika array
Operasi aritmatika matriks sama seperti yang didefinisikan dalam aljabar linier. Operasi array dijalankan elemen demi elemen, baik pada array satu dimensi maupun multidimensi.
Operator matriks dan operator array dibedakan oleh simbol titik (.). Namun, karena operasi penjumlahan dan pengurangan sama untuk matriks dan array, operatornya sama untuk kedua kasus. Tabel berikut memberikan penjelasan singkat tentang operator -
Tunjukkan Contoh
Sr.No. | Operator & Deskripsi |
---|---|
1 | + Penambahan atau plus unary. A + B menambahkan nilai yang disimpan dalam variabel A dan B. A dan B harus memiliki ukuran yang sama, kecuali salah satunya adalah skalar. Skalar dapat ditambahkan ke matriks dengan ukuran berapa pun. |
2 | - Pengurangan atau minus unary. AB mengurangi nilai B dari A. A dan B harus memiliki ukuran yang sama, kecuali salah satunya adalah skalar. Skalar dapat dikurangi dari matriks dengan ukuran berapa pun. |
3 | * Perkalian matriks. C = A * B adalah produk aljabar linier dari matriks A dan B. Lebih tepatnya,
Untuk non-skalar A dan B, jumlah kolom A harus sama dengan jumlah baris B. Skalar dapat mengalikan matriks dengan ukuran berapa pun. |
4 | .* Perkalian array. A. * B adalah produk elemen demi elemen dari array A dan B. A dan B harus memiliki ukuran yang sama, kecuali salah satunya adalah skalar. |
5 | / Pembagian kanan garis miring atau matriks. B / A kira-kira sama dengan B * inv (A). Lebih tepatnya, B / A = (A '\ B') '. |
6 | ./ Pembagian kanan array. A./B adalah matriks dengan elemen A (i, j) / B (i, j). A dan B harus memiliki ukuran yang sama, kecuali salah satunya adalah skalar. |
7 | \ Garis miring terbalik atau pembagian kiri matriks. Jika A adalah matriks persegi, A \ B kira-kira sama dengan inv (A) * B, kecuali jika dihitung dengan cara yang berbeda. Jika A adalah n-by-n matriks dan B adalah vektor kolom dengan komponen n, atau matriks dengan beberapa kolom tersebut, maka X = A \ B adalah solusi untuk persamaan AX = B . Pesan peringatan ditampilkan jika skala A buruk atau hampir tunggal. |
8 | .\ Divisi kiri array. A. \ B adalah matriks dengan elemen B (i, j) / A (i, j). A dan B harus memiliki ukuran yang sama, kecuali salah satunya adalah skalar. |
9 | ^ Kekuatan matriks. X ^ p adalah X pangkat p, jika p adalah skalar. Jika p adalah bilangan bulat, daya dihitung dengan kuadrat berulang. Jika bilangan bulatnya negatif, X dibalik terlebih dahulu. Untuk nilai p lain, perhitungannya melibatkan nilai eigen dan vektor eigen, sehingga jika [V, D] = eig (X), maka X ^ p = V * D. ^ p / V. |
10 | .^ Kekuatan array. A. ^ B adalah matriks dengan elemen A (i, j) pangkat B (i, j). A dan B harus memiliki ukuran yang sama, kecuali salah satunya adalah skalar. |
11 | ' Transpos matriks. A 'adalah transpos aljabar linier dari A. Untuk matriks kompleks, ini adalah transpos konjugat kompleks. |
12 | .' Transpose array. SEBUAH.' adalah transpos array dari A. Untuk matriks kompleks, ini tidak melibatkan konjugasi. |
Operator Relasional
Operator relasional juga dapat bekerja pada data skalar dan non-skalar. Operator relasional untuk array melakukan perbandingan elemen-demi-elemen antara dua array dan mengembalikan array logis dengan ukuran yang sama, dengan elemen yang disetel ke logika 1 (true) di mana relasinya benar dan elemen disetel ke logika 0 (salah) di mana itu berada tidak.
Tabel berikut menunjukkan operator relasional yang tersedia di MATLAB -
Tunjukkan Contoh
Sr.No. | Operator & Deskripsi |
---|---|
1 | < Kurang dari |
2 | <= Kurang dari atau sama dengan |
3 | > Lebih besar dari |
4 | >= Lebih dari atau sama dengan |
5 | == Sama dengan |
6 | ~= Tidak sebanding dengan |
Operator Logis
MATLAB menawarkan dua jenis operator dan fungsi logika -
Elemen-bijaksana - Operator ini beroperasi pada elemen yang sesuai dari array logis.
Sirkuit pendek - Operator ini beroperasi pada skalar dan, ekspresi logis.
Operator logika berdasarkan elemen mengoperasikan elemen demi elemen pada array logis. Simbol &, |, dan ~ adalah operator larik logika AND, OR, dan NOT.
Operator logika sirkuit pendek memungkinkan hubungan pendek pada operasi logis. Simbol && dan || adalah operator hubung singkat logis AND dan OR.
Tunjukkan Contoh
Operasi Bitwise
Operator bitwise bekerja pada bit dan melakukan operasi bit demi bit. Tabel kebenaran untuk &, |, dan ^ adalah sebagai berikut -
p | 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 |
Asumsikan jika A = 60; dan B = 13; Sekarang dalam format biner akan menjadi sebagai berikut -
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~ A = 1100 0011
MATLAB menyediakan berbagai fungsi untuk operasi bit-bijaksana seperti operasi 'bitwise dan', 'bitwise atau' dan 'bitwise not', operasi shift, dll.
Tabel berikut menunjukkan operasi bitwise yang umum digunakan -
Tunjukkan Contoh
Fungsi | Tujuan |
---|---|
bitand (a, b) | Sedikit demi sedikit AND dari bilangan bulat a dan b |
bitcmp (a) | Pelengkap yang bijak dari a |
bitget (a, pos) | Dapatkan bit pada pos posisi yang ditentukan , dalam array integer a |
bitor (a, b) | Bit-bijaksana OR dari bilangan bulat a dan b |
bitset (a, pos) | Setel bit pada pos lokasi tertentu dari a |
bitshift (a, k) | Mengembalikan a yang digeser ke kiri dengan k bit, setara dengan mengalikan dengan 2 k . Nilai negatif k sesuai dengan menggeser bit ke kanan atau membagi dengan 2 | k | dan pembulatan ke bilangan bulat terdekat menuju tak terbatas negatif. Setiap bit luapan terpotong. |
bitxor (a, b) | XOR bit-bit dari bilangan bulat a dan b |
swapbytes | Tukar urutan byte |
Atur Operasi
MATLAB menyediakan berbagai fungsi untuk operasi himpunan, seperti penyatuan, persimpangan dan pengujian untuk keanggotaan set, dll.
Tabel berikut menunjukkan beberapa operasi set yang umum digunakan -
Tunjukkan Contoh
Sr.No. | Deskripsi fungsi |
---|---|
1 | intersect(A,B) Set persimpangan dua larik; mengembalikan nilai yang sama untuk A dan B. Nilai yang dikembalikan berada dalam urutan yang diurutkan. |
2 | intersect(A,B,'rows') Memperlakukan setiap baris A dan setiap baris B sebagai entitas tunggal dan mengembalikan baris yang sama untuk A dan B. Baris dari matriks yang dikembalikan berada dalam urutan yang diurutkan. |
3 | ismember(A,B) Mengembalikan larik berukuran sama dengan A, berisi 1 (benar) di mana elemen A ditemukan di B. Di tempat lain, mengembalikan 0 (salah). |
4 | ismember(A,B,'rows') Memperlakukan setiap baris A dan setiap baris B sebagai entitas tunggal dan mengembalikan vektor yang berisi 1 (benar) di mana baris matriks A juga baris B. Di tempat lain, ia mengembalikan 0 (salah). |
5 | issorted(A) Mengembalikan logika 1 (benar) jika elemen A dalam urutan yang diurutkan dan logika 0 (salah) sebaliknya. Input A bisa berupa vektor atau larik sel string N-by-1 atau 1-by-N.A is considered to be sorted if A dan keluaran dari sort (A) adalah sama. |
6 | issorted(A, 'rows') Mengembalikan logika 1 (benar) jika baris dari matriks dua dimensi A dalam urutan yang diurutkan, dan logika 0 (salah) sebaliknya. Matrix A is considered to be sorted if A dan keluaran dari pengurutan (A) sama. |
7 | setdiff(A,B) Menetapkan perbedaan dua larik; mengembalikan nilai di A yang bukan di B. Nilai dalam larik yang dikembalikan berada dalam urutan yang diurutkan. |
8 | setdiff(A,B,'rows') Memperlakukan setiap baris A dan setiap baris B sebagai entitas tunggal dan mengembalikan baris dari A yang tidak ada di B. Baris dari matriks yang dikembalikan berada dalam urutan yang diurutkan. Opsi 'baris' tidak mendukung larik sel. |
9 | setxor Menetapkan OR eksklusif dari dua larik |
10 | union Menetapkan gabungan dua larik |
11 | unique Nilai unik dalam array |
Struktur pengambilan keputusan mensyaratkan bahwa programmer harus menentukan satu atau lebih kondisi untuk dievaluasi atau diuji oleh program, bersama dengan pernyataan atau pernyataan yang akan dieksekusi jika kondisi ditentukan benar, dan secara opsional, pernyataan lain yang akan dieksekusi jika kondisi ditentukan sebagai salah.
Berikut ini adalah bentuk umum dari struktur pengambilan keputusan khas yang ditemukan di sebagian besar bahasa pemrograman -
MATLAB memberikan jenis pernyataan pengambilan keputusan berikut. Klik tautan berikut untuk memeriksa detailnya -
Sr.No. | Pernyataan & Deskripsi |
---|---|
1 | jika ... pernyataan akhir Sebuah if ... end statement terdiri dari ekspresi boolean yang diikuti oleh satu atau beberapa pernyataan. |
2 | jika ... lain ... pernyataan akhir Sebuah if statement bisa diikuti dengan opsional else statement, yang dijalankan jika ekspresi boolean salah. |
3 | Jika ... elseif ... elseif ... lain ... pernyataan akhir Sebuah if Pernyataan dapat diikuti oleh satu (atau lebih) pilihan elseif... dan sebuah else pernyataan, yang sangat berguna untuk menguji berbagai kondisi. |
4 | pernyataan if bersarang Anda bisa menggunakannya if atau elseif pernyataan di dalam yang lain if atau elseif pernyataan. |
5 | pernyataan switch SEBUAH switch pernyataan memungkinkan variabel untuk diuji kesetaraan terhadap daftar nilai. |
6 | pernyataan saklar bersarang Anda bisa menggunakannya switch pernyataan di dalam yang lain switch pernyataan. |
Mungkin ada situasi ketika Anda perlu mengeksekusi blok kode beberapa kali. Secara umum, pernyataan dieksekusi secara berurutan. Pernyataan pertama dalam suatu fungsi dijalankan pertama, diikuti oleh yang kedua, dan seterusnya.
Bahasa pemrograman menyediakan berbagai struktur kontrol yang memungkinkan jalur eksekusi yang lebih rumit.
Pernyataan loop memungkinkan kita untuk mengeksekusi pernyataan atau sekelompok pernyataan beberapa kali dan berikut adalah bentuk umum dari pernyataan loop di sebagian besar bahasa pemrograman -
MATLAB menyediakan jenis loop berikut untuk menangani persyaratan perulangan. Klik tautan berikut untuk memeriksa detailnya -
Sr.No. | Jenis & Deskripsi Loop |
---|---|
1 | while loop Mengulangi pernyataan atau sekelompok pernyataan saat kondisi tertentu benar. Ini menguji kondisi sebelum menjalankan badan perulangan. |
2 | untuk loop Menjalankan urutan pernyataan beberapa kali dan menyingkat kode yang mengelola variabel loop. |
3 | loop bersarang Anda dapat menggunakan satu atau lebih loop di dalam loop lain. |
Pernyataan Kontrol Loop
Pernyataan kontrol loop mengubah eksekusi dari urutan normalnya. Saat eksekusi meninggalkan ruang lingkup, semua objek otomatis yang dibuat dalam lingkup itu dimusnahkan.
MATLAB mendukung pernyataan kontrol berikut. Klik tautan berikut untuk memeriksa detailnya.
Sr.No. | Pernyataan & Deskripsi Kontrol |
---|---|
1 | pernyataan istirahat Menghentikan loop pernyataan dan transfer eksekusi ke pernyataan segera setelah loop. |
2 | lanjutkan pernyataan Menyebabkan loop melewatkan sisa tubuhnya dan segera menguji ulang kondisinya sebelum mengulangi. |
Vektor adalah deretan angka satu dimensi. MATLAB memungkinkan pembuatan dua jenis vektor -
- Vektor baris
- Vektor kolom
Vektor Baris
Row vectors dibuat dengan mengapit kumpulan elemen dalam tanda kurung siku, menggunakan spasi atau koma untuk membatasi elemen.
r = [7 8 9 10 11]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
r =
7 8 9 10 11
Vektor Kolom
Column vectors dibuat dengan mengapit kumpulan elemen dalam tanda kurung siku, menggunakan titik koma untuk membatasi elemen.
c = [7; 8; 9; 10; 11]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
c =
7
8
9
10
11
Mereferensikan Elemen Vektor
Anda dapat mereferensikan satu atau lebih elemen vektor dengan beberapa cara. Komponen ke- i dari vektor v disebut sebagai v (i). Misalnya -
v = [ 1; 2; 3; 4; 5; 6]; % creating a column vector of 6 elements
v(3)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 3
Saat Anda mereferensikan vektor dengan titik dua, seperti v (:), semua komponen vektor dicantumkan.
v = [ 1; 2; 3; 4; 5; 6]; % creating a column vector of 6 elements
v(:)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
1
2
3
4
5
6
MATLAB memungkinkan Anda memilih berbagai elemen dari vektor.
Sebagai contoh, mari kita buat vektor baris rv dari 9 elemen, kemudian kita akan mereferensikan elemen 3 sampai 7 dengan menulisrv(3:7)dan buat vektor baru bernama sub_rv .
rv = [1 2 3 4 5 6 7 8 9];
sub_rv = rv(3:7)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
sub_rv =
3 4 5 6 7
Operasi Vektor
Pada bagian ini, mari kita bahas operasi vektor berikut -
Penjumlahan dan Pengurangan Vektor
Perkalian Skalar Vektor
Mengubah urutan Vektor
Menambahkan Vektor
Besaran Vektor
Produk Vektor Dot
Vektor dengan Elemen Spasi Seragam
Matriks adalah deretan angka dua dimensi.
Di MATLAB, Anda membuat matriks dengan memasukkan elemen di setiap baris sebagai angka yang dipisahkan koma atau spasi dan menggunakan titik koma untuk menandai akhir setiap baris.
Misalnya, mari kita buat matriks 4 kali 5 a -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
a =
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
Mereferensikan Elemen Matriks
Untuk mereferensikan elemen di baris ke- m dan kolom ke- n , dari matriks mx , kita tulis -
mx(m, n);
Misalnya, untuk merujuk ke elemen dalam 2 nd baris dan 5 th kolom, matriks yang , seperti yang dibuat dalam bagian terakhir, kita ketikkan -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(2,5)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 6
Untuk referensi semua elemen dalam m th kolom kita tipe A (:, m).
Mari kita buat vektor kolom v, dari elemen-elemen baris ke- 4 dari matriks a -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
v = a(:,4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
v =
4
5
6
7
Anda juga dapat memilih elemen dalam m th melalui n th kolom, karena kita menulis ini -
a(:,m:n)
Mari kita buat matriks yang lebih kecil dengan mengambil elemen dari kolom kedua dan ketiga -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(:, 2:3)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
2 3
3 4
4 5
5 6
Dengan cara yang sama, Anda bisa membuat sub-matriks yang mengambil sub-bagian dari matriks.
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(:, 2:3)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
2 3
3 4
4 5
5 6
Dengan cara yang sama, Anda bisa membuat sub-matriks yang mengambil sub-bagian dari matriks.
Sebagai contoh, mari kita buat sub-matriks sa yang mengambil bagian dalam dari a -
3 4 5
4 5 6
Untuk melakukan ini, tulis -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
sa = a(2:3,2:4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
sa =
3 4 5
4 5 6
Menghapus Baris atau Kolom dalam Matriks
Anda dapat menghapus seluruh baris atau kolom dari sebuah matriks dengan menetapkan kumpulan tanda kurung siku [] kosong ke baris atau kolom tersebut. Pada dasarnya, [] menunjukkan larik kosong.
Misalnya, mari kita hapus baris keempat dari a -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a( 4 , : ) = []
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
a =
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
Selanjutnya, mari kita hapus kolom kelima dari a -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(: , 5)=[]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
a =
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
Contoh
Dalam contoh ini, mari kita buat matriks 3-kali-3 m, lalu kita akan menyalin baris kedua dan ketiga dari matriks ini dua kali untuk membuat matriks 4-kali-3.
Buat file skrip dengan kode berikut -
a = [ 1 2 3 ; 4 5 6; 7 8 9];
new_mat = a([2,3,2,3],:)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
new_mat =
4 5 6
7 8 9
4 5 6
7 8 9
Operasi Matriks
Pada bagian ini, mari kita bahas operasi matriks dasar dan umum berikut ini -
Penjumlahan dan Pengurangan Matriks
Divisi Matriks
Operasi Skalar Matriks
Mengubah urutan Matriks
Matriks Penggabungan
Perkalian Matriks
Determinan Matriks
Pembalikan Matriks
Semua variabel dari semua tipe data di MATLAB adalah array multidimensi. Vektor adalah larik satu dimensi dan matriks adalah larik dua dimensi.
Kita telah membahas vektor dan matriks. Pada bab ini, kita akan membahas array multidimensi. Namun, sebelumnya, mari kita bahas beberapa jenis array khusus.
Array Khusus di MATLAB
Pada bagian ini, kita akan membahas beberapa fungsi yang membuat beberapa array khusus. Untuk semua fungsi ini, satu argumen membuat array persegi, argumen ganda membuat array persegi panjang.
Itu zeros() fungsi membuat array dari semua nol -
Misalnya -
zeros(5)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Itu ones() fungsi membuat array dari semua yang -
Misalnya -
ones(4,3)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
1 1 1
1 1 1
1 1 1
1 1 1
Itu eye() fungsi membuat matriks identitas.
Misalnya -
eye(4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Itu rand() fungsi membuat larik bilangan acak terdistribusi seragam di (0,1) -
Misalnya -
rand(3, 5)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
0.8147 0.9134 0.2785 0.9649 0.9572
0.9058 0.6324 0.5469 0.1576 0.4854
0.1270 0.0975 0.9575 0.9706 0.8003
Kotak Ajaib
SEBUAH magic square adalah bujur sangkar yang menghasilkan jumlah yang sama, jika elemen-elemennya ditambahkan secara baris, kolom, atau diagonal.
Itu magic()fungsi membuat array persegi ajaib. Dibutuhkan argumen tunggal yang memberikan ukuran persegi. Argumennya harus skalar lebih besar dari atau sama dengan 3.
magic(4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
Array Multidimensi
Array yang memiliki lebih dari dua dimensi disebut array multidimensi di MATLAB. Array multidimensi dalam MATLAB merupakan perpanjangan dari matriks dua dimensi normal.
Umumnya untuk menghasilkan array multidimensi, pertama kita membuat array dua dimensi dan memperluasnya.
Sebagai contoh, mari buat array dua dimensi a.
a = [7 9 5; 6 1 9; 4 3 2]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
a =
7 9 5
6 1 9
4 3 2
Larik a adalah larik 3-kali-3; kita dapat menambahkan dimensi ketiga ke a , dengan memberikan nilai seperti -
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
a =
ans(:,:,1) =
0 0 0
0 0 0
0 0 0
ans(:,:,2) =
1 2 3
4 5 6
7 8 9
Kita juga bisa membuat array multidimensi menggunakan fungsi ones (), zeros () atau rand ().
Sebagai contoh,
b = rand(4,3,2)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
b(:,:,1) =
0.0344 0.7952 0.6463
0.4387 0.1869 0.7094
0.3816 0.4898 0.7547
0.7655 0.4456 0.2760
b(:,:,2) =
0.6797 0.4984 0.2238
0.6551 0.9597 0.7513
0.1626 0.3404 0.2551
0.1190 0.5853 0.5060
Kita juga bisa menggunakan cat()berfungsi untuk membangun array multidimensi. Ini menggabungkan daftar array di sepanjang dimensi yang ditentukan -
Sintaks untuk fungsi cat () adalah -
B = cat(dim, A1, A2...)
Dimana,
B adalah larik baru yang dibuat
A1 , A2 , ... adalah array yang akan digabungkan
redup adalah dimensi yang digunakan untuk menggabungkan array
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
a = [9 8 7; 6 5 4; 3 2 1];
b = [1 2 3; 4 5 6; 7 8 9];
c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])
Saat Anda menjalankan file, ini akan menampilkan -
c(:,:,1) =
9 8 7
6 5 4
3 2 1
c(:,:,2) =
1 2 3
4 5 6
7 8 9
c(:,:,3) =
2 3 1
4 7 8
3 9 0
Fungsi Array
MATLAB menyediakan fungsi berikut untuk mengurutkan, memutar, mengubah, membentuk kembali, atau menggeser konten array.
Fungsi | Tujuan |
---|---|
panjangnya | Panjang vektor atau dimensi larik terbesar |
ndims | Jumlah dimensi array |
numel | Jumlah elemen array |
ukuran | Dimensi array |
iscolumn | Menentukan apakah masukan adalah vektor kolom |
kosong | Menentukan apakah array kosong |
ismatriks | Menentukan apakah masukan adalah matriks |
isrow | Menentukan apakah masukan adalah vektor baris |
isscalar.dll | Menentukan apakah masukan adalah skalar |
isvector | Menentukan apakah masukan adalah vektor |
blkdiag.dll | Membangun matriks blok diagonal dari argumen masukan |
perpindahan tempat | Menggeser array secara melingkar |
ctranspose | Transpos konjugat kompleks |
diag | Matriks diagonal dan diagonal matriks |
flipdim | Membalik array sepanjang dimensi yang ditentukan |
fliplr | Membalik matriks dari kiri ke kanan |
flipud | Membalik matriks ke atas ke bawah |
ipermute | Membalikkan dimensi permute dari array ND |
menukar urutan | Mengatur ulang dimensi larik ND |
repmat | Replikasi dan susunan petak |
membentuk kembali | Membentuk ulang larik |
membusuk90 | Memutar matriks 90 derajat |
shiftdim.dll | Menggeser dimensi |
disortir | Menentukan apakah elemen set dalam urutan yang diurutkan |
menyortir | Mengurutkan elemen array dalam urutan naik atau turun |
sortrows | Mengurutkan baris dalam urutan menaik |
meremas | Menghapus dimensi tunggal |
mengubah urutan | Mengubah urutan |
vektorisasi | Vektorisasi ekspresi |
Contoh
Contoh berikut menggambarkan beberapa fungsi yang disebutkan di atas.
Length, Dimension and Number of elements −
Buat file skrip dan ketikkan kode berikut ke dalamnya -
x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];
length(x) % length of x vector
y = rand(3, 4, 5, 2);
ndims(y) % no of dimensions in array y
s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
numel(s) % no of elements in s
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans = 8
ans = 4
ans = 23
Circular Shifting of the Array Elements −
Buat file skrip dan ketikkan kode berikut ke dalamnya -
a = [1 2 3; 4 5 6; 7 8 9] % the original array a
b = circshift(a,1) % circular shift first dimension values down by 1.
c = circshift(a,[1 -1]) % circular shift first dimension values % down by 1
% and second dimension values to the left % by 1.
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
a =
1 2 3
4 5 6
7 8 9
b =
7 8 9
1 2 3
4 5 6
c =
8 9 7
2 3 1
5 6 4
Menyortir Array
Buat file skrip dan ketikkan kode berikut ke dalamnya -
v = [ 23 45 12 9 5 0 19 17] % horizontal vector
sort(v) % sorting v
m = [2 6 4; 5 3 9; 2 0 1] % two dimensional array
sort(m, 1) % sorting m along the row
sort(m, 2) % sorting m along the column
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
v =
23 45 12 9 5 0 19 17
ans =
0 5 9 12 17 19 23 45
m =
2 6 4
5 3 9
2 0 1
ans =
2 0 1
2 3 4
5 6 9
ans =
2 4 6
3 5 9
0 1 2
Array Sel
Larik sel adalah larik sel yang diindeks di mana setiap sel dapat menyimpan larik dengan dimensi dan tipe data yang berbeda.
Itu cellfungsi digunakan untuk membuat array sel. Sintaks untuk fungsi sel adalah -
C = cell(dim)
C = cell(dim1,...,dimN)
D = cell(obj)
Dimana,
C adalah larik sel;
dim adalah bilangan bulat skalar atau vektor bilangan bulat yang menentukan dimensi larik sel C;
dim1, ..., dimN adalah bilangan bulat skalar yang menentukan dimensi C;
obj adalah Salah satu dari berikut -
- Array atau objek Java
- Array .NET berjenis System.String atau System.Object
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
c = cell(2, 5);
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
c =
{
[1,1] = Red
[2,1] = 1
[1,2] = Blue
[2,2] = 2
[1,3] = Green
[2,3] = 3
[1,4] = Yellow
[2,4] = 4
[1,5] = White
[2,5] = 5
}
Mengakses Data dalam Array Sel
Ada dua cara untuk merujuk ke elemen array sel -
- Mengapit indeks dalam tanda kurung pertama (), untuk merujuk ke kumpulan sel
- Mengapit indeks dalam tanda kurung kurawal {}, untuk merujuk ke data di dalam sel individu
Saat Anda mengapit indeks dalam tanda kurung pertama, ini merujuk ke kumpulan sel.
Indeks larik sel dalam tanda kurung mulus mengacu pada kumpulan sel.
Misalnya -
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c(1:2,1:2)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
{
[1,1] = Red
[2,1] = 1
[1,2] = Blue
[2,2] = 2
}
Anda juga dapat mengakses konten sel dengan mengindeks dengan tanda kurung kurawal.
Misalnya -
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c{1, 2:4}
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = Blue
ans = Green
ans = Yellow
Itu colon(:)adalah salah satu operator paling berguna di MATLAB. Ini digunakan untuk membuat vektor, array subskrip, danspecify for iterations.
Jika Anda ingin membuat vektor baris, yang berisi bilangan bulat dari 1 hingga 10, Anda menulis -
1:10
MATLAB mengeksekusi pernyataan dan mengembalikan vektor baris yang berisi bilangan bulat dari 1 hingga 10 -
ans =
1 2 3 4 5 6 7 8 9 10
Jika Anda ingin menentukan nilai kenaikan selain dari satu, misalnya -
100: -5: 50
MATLAB menjalankan pernyataan dan mengembalikan hasil berikut -
ans =
100 95 90 85 80 75 70 65 60 55 50
Mari kita ambil contoh lain -
0:pi/8:pi
MATLAB menjalankan pernyataan dan mengembalikan hasil berikut -
ans =
Columns 1 through 7
0 0.3927 0.7854 1.1781 1.5708 1.9635 2.3562
Columns 8 through 9
2.7489 3.1416
Anda dapat menggunakan operator titik dua untuk membuat vektor indeks untuk memilih baris, kolom, atau elemen array.
Tabel berikut menjelaskan penggunaannya untuk tujuan ini (mari kita memiliki matriks A) -
Format | Tujuan |
---|---|
A(:,j) | adalah kolom ke-j dari A. |
A(i,:) | adalah baris ke-i dari A. |
A(:,:) | adalah larik dua dimensi yang setara. Untuk matriks, nilainya sama dengan A. |
A(j:k) | adalah A (j), A (j + 1), ..., A (k). |
A(:,j:k) | adalah A (:, j), A (:, j + 1), ..., A (:, k). |
A(:,:,k) | adalah halaman ke- k dari larik tiga dimensi A. |
A(i,j,k,:) | adalah vektor dalam larik empat dimensi A. Vektor tersebut meliputi A (i, j, k, 1), A (i, j, k, 2), A (i, j, k, 3), dan seterusnya. |
A(:) | adalah semua elemen A, dianggap sebagai satu kolom. Di sisi kiri pernyataan tugas, A (:) mengisi A, mempertahankan bentuknya dari sebelumnya. Dalam hal ini, sisi kanan harus mengandung jumlah elemen yang sama dengan A. |
Contoh
Buat file skrip dan ketik kode berikut di dalamnya -
A = [1 2 3 4; 4 5 6 7; 7 8 9 10]
A(:,2) % second column of A
A(:,2:3) % second and third column of A
A(2:3,2:3) % second and third rows and second and third columns
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
A =
1 2 3 4
4 5 6 7
7 8 9 10
ans =
2
5
8
ans =
2 3
5 6
8 9
ans =
5 6
8 9
MATLAB mendukung berbagai kelas numerik yang mencakup bilangan bulat bertanda dan tidak bertanda tangan serta nomor floating-point presisi tunggal dan ganda. Secara default, MATLAB menyimpan semua nilai numerik sebagai angka floating point presisi ganda.
Anda dapat memilih untuk menyimpan angka atau deretan angka apa pun sebagai bilangan bulat atau sebagai angka presisi tunggal.
Semua tipe numerik mendukung operasi array dasar dan operasi matematika.
Konversi ke Berbagai Jenis Data Numerik
MATLAB menyediakan fungsi berikut untuk mengkonversi ke berbagai tipe data numerik -
Fungsi | Tujuan |
---|---|
dua kali lipat | Mengonversi ke angka presisi ganda |
tunggal | Mengonversi ke angka presisi tunggal |
int8 | Mengonversi menjadi bilangan bulat bertanda 8-bit |
int16 | Mengonversi menjadi bilangan bulat bertanda 16-bit |
int32 | Mengonversi menjadi bilangan bulat bertanda 32-bit |
int64 | Mengonversi menjadi bilangan bulat bertanda 64-bit |
uint8 | Mengonversi menjadi integer tanpa tanda tangan 8-bit |
uint16 | Mengonversi menjadi integer 16-bit unsigned |
uint32 | Mengonversi menjadi integer 32-bit unsigned |
uint64 | Mengonversi menjadi 64-bit unsigned integer |
Contoh
Buat file script dan ketik kode berikut -
x = single([5.32 3.47 6.28]) .* 7.5
x = double([5.32 3.47 6.28]) .* 7.5
x = int8([5.32 3.47 6.28]) .* 7.5
x = int16([5.32 3.47 6.28]) .* 7.5
x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5
Saat Anda menjalankan file, ini menunjukkan hasil sebagai berikut -
x =
39.900 26.025 47.100
x =
39.900 26.025 47.100
x =
38 23 45
x =
38 23 45
x =
38 23 45
x =
38 23 45
Contoh
Mari kita kembangkan contoh sebelumnya sedikit lagi. Buat file script dan ketik kode berikut -
x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5
x = num2cell(x)
Saat Anda menjalankan file, ini menunjukkan hasil sebagai berikut -
x =
38 23 45
x =
38 23 45
x =
{
[1,1] = 38
[1,2] = 23
[1,3] = 45
}
Integer Terkecil dan Terbesar
Fungsinya intmax() dan intmin() mengembalikan nilai maksimum dan minimum yang dapat direpresentasikan dengan semua jenis bilangan bulat.
Kedua fungsi tersebut menggunakan tipe data integer sebagai argumennya, misalnya, intmax (int8) atau intmin (int64) dan mengembalikan nilai maksimum dan minimum yang dapat Anda wakili dengan tipe data integer.
Contoh
Contoh berikut menggambarkan cara mendapatkan nilai bilangan bulat terkecil dan terbesar. Buat file skrip dan tulis kode berikut di dalamnya -
% displaying the smallest and largest signed integer data
str = 'The range for int8 is:\n\t%d to %d ';
sprintf(str, intmin('int8'), intmax('int8'))
str = 'The range for int16 is:\n\t%d to %d ';
sprintf(str, intmin('int16'), intmax('int16'))
str = 'The range for int32 is:\n\t%d to %d ';
sprintf(str, intmin('int32'), intmax('int32'))
str = 'The range for int64 is:\n\t%d to %d ';
sprintf(str, intmin('int64'), intmax('int64'))
% displaying the smallest and largest unsigned integer data
str = 'The range for uint8 is:\n\t%d to %d ';
sprintf(str, intmin('uint8'), intmax('uint8'))
str = 'The range for uint16 is:\n\t%d to %d ';
sprintf(str, intmin('uint16'), intmax('uint16'))
str = 'The range for uint32 is:\n\t%d to %d ';
sprintf(str, intmin('uint32'), intmax('uint32'))
str = 'The range for uint64 is:\n\t%d to %d ';
sprintf(str, intmin('uint64'), intmax('uint64'))
Saat Anda menjalankan file, ini menunjukkan hasil sebagai berikut -
ans = The range for int8 is:
-128 to 127
ans = The range for int16 is:
-32768 to 32767
ans = The range for int32 is:
-2147483648 to 2147483647
ans = The range for int64 is:
0 to 0
ans = The range for uint8 is:
0 to 255
ans = The range for uint16 is:
0 to 65535
ans = The range for uint32 is:
0 to -1
ans = The range for uint64 is:
0 to 18446744073709551616
Angka Floating Point Terkecil dan Terbesar
Fungsinya realmax() dan realmin() mengembalikan nilai maksimum dan minimum yang dapat direpresentasikan dengan angka floating point.
Kedua fungsi tersebut saat dipanggil dengan argumen 'single', mengembalikan nilai maksimum dan minimum yang dapat Anda wakili dengan tipe data presisi tunggal dan saat dipanggil dengan argumen 'double', kembalikan nilai maksimum dan minimum yang dapat Anda wakili tipe data presisi ganda.
Contoh
Contoh berikut mengilustrasikan cara mendapatkan bilangan floating point terkecil dan terbesar. Buat file skrip dan tulis kode berikut di dalamnya -
% displaying the smallest and largest single-precision
% floating point number
str = 'The range for single is:\n\t%g to %g and\n\t %g to %g';
sprintf(str, -realmax('single'), -realmin('single'), ...
realmin('single'), realmax('single'))
% displaying the smallest and largest double-precision
% floating point number
str = 'The range for double is:\n\t%g to %g and\n\t %g to %g';
sprintf(str, -realmax('double'), -realmin('double'), ...
realmin('double'), realmax('double'))
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans = The range for single is:
-3.40282e+38 to -1.17549e-38 and
1.17549e-38 to 3.40282e+38
ans = The range for double is:
-1.79769e+308 to -2.22507e-308 and
2.22507e-308 to 1.79769e+308
Membuat string karakter cukup sederhana di MATLAB. Faktanya, kami telah menggunakannya berkali-kali. Misalnya, Anda mengetik berikut ini di prompt perintah -
my_string = 'Tutorials Point'
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
my_string = Tutorials Point
MATLAB menganggap semua variabel sebagai array, dan string dianggap sebagai array karakter. Mari kita gunakanwhos perintah untuk memeriksa variabel yang dibuat di atas -
whos
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
Name Size Bytes Class Attributes
my_string 1x16 32 char
Menariknya, Anda dapat menggunakan fungsi konversi numerik seperti uint8 atau uint16untuk mengubah karakter dalam string menjadi kode numeriknya. Ituchar fungsi mengubah vektor integer kembali ke karakter -
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
my_string = 'Tutorial''s Point';
str_ascii = uint8(my_string) % 8-bit ascii values
str_back_to_char= char(str_ascii)
str_16bit = uint16(my_string) % 16-bit ascii values
str_back_to_char = char(str_16bit)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
str_ascii =
84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116
str_back_to_char = Tutorial's Point
str_16bit =
84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116
str_back_to_char = Tutorial's Point
Array Karakter Persegi Panjang
String yang telah kita diskusikan sejauh ini adalah array karakter satu dimensi; Namun, kita perlu menyimpan lebih dari itu. Kita perlu menyimpan lebih banyak data tekstual dalam program kita. Ini dicapai dengan membuat array karakter persegi panjang.
Cara termudah untuk membuat larik karakter persegi panjang adalah dengan menggabungkan dua atau lebih larik karakter satu dimensi, baik secara vertikal maupun horizontal sesuai kebutuhan.
Anda dapat menggabungkan string secara vertikal dengan salah satu cara berikut -
Menggunakan operator penggabungan MATLAB []dan memisahkan setiap baris dengan titik koma (;). Harap diperhatikan bahwa dalam metode ini setiap baris harus mengandung jumlah karakter yang sama. Untuk string dengan panjang berbeda, Anda harus mengisi karakter spasi sesuai kebutuhan.
Menggunakan charfungsi. Jika string memiliki panjang yang berbeda, karakter mengisi string yang lebih pendek dengan trailing blank sehingga setiap baris memiliki jumlah karakter yang sama.
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
doc_profile = ['Zara Ali '; ...
'Sr. Surgeon '; ...
'R N Tagore Cardiology Research Center']
doc_profile = char('Zara Ali', 'Sr. Surgeon', ...
'RN Tagore Cardiology Research Center')
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
doc_profile =
Zara Ali
Sr. Surgeon
R N Tagore Cardiology Research Center
doc_profile =
Zara Ali
Sr. Surgeon
RN Tagore Cardiology Research Center
Anda dapat menggabungkan string secara horizontal dengan salah satu cara berikut -
Menggunakan operator penggabungan MATLAB, []dan memisahkan string input dengan koma atau spasi. Metode ini mempertahankan spasi tambahan dalam larik input.
Menggunakan fungsi penggabungan string, strcat. Metode ini menghapus spasi tambahan di input.
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
name = 'Zara Ali ';
position = 'Sr. Surgeon ';
worksAt = 'R N Tagore Cardiology Research Center';
profile = [name ', ' position ', ' worksAt]
profile = strcat(name, ', ', position, ', ', worksAt)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
profile = Zara Ali , Sr. Surgeon , R N Tagore Cardiology Research Center
profile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center
Menggabungkan String menjadi Array Sel
Dari diskusi kita sebelumnya, jelas bahwa menggabungkan string dengan panjang yang berbeda bisa jadi merepotkan karena semua string dalam array harus memiliki panjang yang sama. Kami telah menggunakan spasi kosong di akhir string untuk menyamakan panjangnya.
Namun, cara yang lebih efisien untuk menggabungkan string adalah dengan mengubah larik yang dihasilkan menjadi larik sel.
Larik sel MATLAB dapat menampung berbagai ukuran dan jenis data dalam larik. Array sel menyediakan cara yang lebih fleksibel untuk menyimpan string dengan panjang yang bervariasi.
Itu cellstr fungsi mengubah larik karakter menjadi larik sel string.
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
name = 'Zara Ali ';
position = 'Sr. Surgeon ';
worksAt = 'R N Tagore Cardiology Research Center';
profile = char(name, position, worksAt);
profile = cellstr(profile);
disp(profile)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
{
[1,1] = Zara Ali
[2,1] = Sr. Surgeon
[3,1] = R N Tagore Cardiology Research Center
}
Fungsi String di MATLAB
MATLAB menyediakan banyak fungsi string yang membuat, menggabungkan, mengurai, membandingkan, dan memanipulasi string.
Tabel berikut memberikan penjelasan singkat tentang fungsi string di MATLAB -
Fungsi | Tujuan |
---|---|
Fungsi untuk menyimpan teks dalam larik karakter, menggabungkan larik karakter, dll. | |
kosong | Buat string karakter kosong |
cellstr | Buat array sel string dari array karakter |
arang | Ubah ke array karakter (string) |
iscellstr | Tentukan apakah masukan adalah larik sel string |
ischar | Tentukan apakah item adalah array karakter |
sprintf | Format data menjadi string |
strcat | Gabungkan string secara horizontal |
strjoin | Gabungkan string dalam array sel menjadi string tunggal |
Berfungsi untuk mengidentifikasi bagian string, mencari dan mengganti substring | |
ischar | Tentukan apakah item adalah array karakter |
isletter | Elemen larik yang merupakan huruf abjad |
isspace | Elemen larik yang merupakan karakter spasi |
isstrprop | Tentukan apakah string termasuk dalam kategori tertentu |
sscanf | Membaca data yang diformat dari string |
strfind | Temukan satu string di dalam string lainnya |
strrep | Temukan dan ganti substring |
strsplit.dll | Pisahkan string pada pembatas yang ditentukan |
strtok | Bagian string yang dipilih |
validatestring | Periksa validitas string teks |
symvar | Tentukan variabel simbolik dalam ekspresi |
regexp | Match regular expression (case sensitive) |
regexpi | Match regular expression (case insensitive) |
regexprep | Replace string using regular expression |
regexptranslate | Translate string into regular expression |
Functions for string comparison | |
strcmp | Compare strings (case sensitive) |
strcmpi | Compare strings (case insensitive) |
strncmp | Compare first n characters of strings (case sensitive) |
strncmpi | Compare first n characters of strings (case insensitive) |
Functions for changing string to upper- or lowercase, creating or removing white space | |
deblank | Strip trailing blanks from end of string |
strtrim | Remove leading and trailing white space from string |
lower | Convert string to lowercase |
upper | Convert string to uppercase |
strjust | Justify character array |
Examples
The following examples illustrate some of the above-mentioned string functions −
Formatting Strings
Create a script file and type the following code into it −
A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)
When you run the file, it displays the following result −
ans = 3141.592654
3141.59
+3141.59
3141.59
000003141.59
Joining Strings
Create a script file and type the following code into it −
%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};
% Join strings in cell array into single string
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")
When you run the file, it displays the following result −
str1 = red-blue-green-yellow-orange
str2 = red,blue,green,yellow,orange
Finding and Replacing Strings
Create a script file and type the following code into it −
students = {'Zara Ali', 'Neha Bhatnagar', ...
'Monica Malik', 'Madhu Gautam', ...
'Madhu Sharma', 'Bhawna Sharma',...
'Nuha Ali', 'Reva Dutta', ...
'Sunaina Ali', 'Sofia Kabir'};
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)
When you run the file, it displays the following result −
new_student =
{
[1,1] = Poulomi Dutta
}
first_names =
{
[1,1] = Zara
[1,2] = Neha
[1,3] = Monica
[1,4] = Madhu
[1,5] = Madhu
[1,6] = Bhawna
[1,7] = Nuha
[1,8] = Reva
[1,9] = Sunaina
[1,10] = Sofia
}
Comparing Strings
Create a script file and type the following code into it −
str1 = 'This is test'
str2 = 'This is text'
if (strcmp(str1, str2))
sprintf('%s and %s are equal', str1, str2)
else
sprintf('%s and %s are not equal', str1, str2)
end
When you run the file, it displays the following result −
str1 = This is test
str2 = This is text
ans = This is test and This is text are not equal
A function is a group of statements that together perform a task. In MATLAB, functions are defined in separate files. The name of the file and of the function should be the same.
Functions operate on variables within their own workspace, which is also called the local workspace, separate from the workspace you access at the MATLAB command prompt which is called the base workspace.
Functions can accept more than one input arguments and may return more than one output arguments.
Syntax of a function statement is −
function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)
Example
The following function named mymax should be written in a file named mymax.m. It takes five numbers as argument and returns the maximum of the numbers.
Create a function file, named mymax.m and type the following code in it −
function max = mymax(n1, n2, n3, n4, n5)
%This function calculates the maximum of the
% five numbers given as input
max = n1;
if(n2 > max)
max = n2;
end
if(n3 > max)
max = n3;
end
if(n4 > max)
max = n4;
end
if(n5 > max)
max = n5;
end
The first line of a function starts with the keyword function. It gives the name of the function and order of arguments. In our example, the mymax function has five input arguments and one output argument.
The comment lines that come right after the function statement provide the help text. These lines are printed when you type −
help mymax
MATLAB will execute the above statement and return the following result −
This function calculates the maximum of the
five numbers given as input
You can call the function as −
mymax(34, 78, 89, 23, 11)
MATLAB will execute the above statement and return the following result −
ans = 89
Anonymous Functions
An anonymous function is like an inline function in traditional programming languages, defined within a single MATLAB statement. It consists of a single MATLAB expression and any number of input and output arguments.
You can define an anonymous function right at the MATLAB command line or within a function or script.
This way you can create simple functions without having to create a file for them.
The syntax for creating an anonymous function from an expression is
f = @(arglist)expression
Example
In this example, we will write an anonymous function named power, which will take two numbers as input and return first number raised to the power of the second number.
Create a script file and type the following code in it −
power = @(x, n) x.^n;
result1 = power(7, 3)
result2 = power(49, 0.5)
result3 = power(10, -10)
result4 = power (4.5, 1.5)
When you run the file, it displays −
result1 = 343
result2 = 7
result3 = 1.0000e-10
result4 = 9.5459
Primary and Sub-Functions
Any function other than an anonymous function must be defined within a file. Each function file contains a required primary function that appears first and any number of optional sub-functions that comes after the primary function and used by it.
Primary functions can be called from outside of the file that defines them, either from command line or from other functions, but sub-functions cannot be called from command line or other functions, outside the function file.
Sub-functions are visible only to the primary function and other sub-functions within the function file that defines them.
Example
Let us write a function named quadratic that would calculate the roots of a quadratic equation. The function would take three inputs, the quadratic co-efficient, the linear co-efficient and the constant term. It would return the roots.
The function file quadratic.m will contain the primary function quadratic and the sub-function disc, which calculates the discriminant.
Create a function file quadratic.m and type the following code in it −
function [x1,x2] = quadratic(a,b,c)
%this function returns the roots of
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficients of x2, x and the
%constant term
% It returns the roots
d = disc(a,b,c);
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of quadratic
function dis = disc(a,b,c)
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end % end of sub-function
You can call the above function from command prompt as −
quadratic(2,4,-4)
MATLAB will execute the above statement and return the following result −
ans = 0.7321
Nested Functions
You can define functions within the body of another function. These are called nested functions. A nested function contains any or all of the components of any other function.
Nested functions are defined within the scope of another function and they share access to the containing function's workspace.
A nested function follows the following syntax −
function x = A(p1, p2)
...
B(p2)
function y = B(p3)
...
end
...
end
Example
Let us rewrite the function quadratic, from previous example, however, this time the disc function will be a nested function.
Create a function file quadratic2.m and type the following code in it −
function [x1,x2] = quadratic2(a,b,c)
function disc % nested function
d = sqrt(b^2 - 4*a*c);
end % end of function disc
disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of function quadratic2
You can call the above function from command prompt as −
quadratic2(2,4,-4)
MATLAB will execute the above statement and return the following result −
ans = 0.73205
Private Functions
A private function is a primary function that is visible only to a limited group of other functions. If you do not want to expose the implementation of a function(s), you can create them as private functions.
Private functions reside in subfolders with the special name private.
They are visible only to functions in the parent folder.
Example
Let us rewrite the quadratic function. This time, however, the disc function calculating the discriminant, will be a private function.
Create a subfolder named private in working directory. Store the following function file disc.m in it −
function dis = disc(a,b,c)
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end % end of sub-function
Create a function quadratic3.m in your working directory and type the following code in it −
function [x1,x2] = quadratic3(a,b,c)
%this function returns the roots of
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficient of x2, x and the
%constant term
% It returns the roots
d = disc(a,b,c);
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of quadratic3
You can call the above function from command prompt as −
quadratic3(2,4,-4)
MATLAB will execute the above statement and return the following result −
ans = 0.73205
Global Variables
Global variables can be shared by more than one function. For this, you need to declare the variable as global in all the functions.
If you want to access that variable from the base workspace, then declare the variable at the command line.
The global declaration must occur before the variable is actually used in a function. It is a good practice to use capital letters for the names of global variables to distinguish them from other variables.
Example
Let us create a function file named average.m and type the following code in it −
function avg = average(nums)
global TOTAL
avg = sum(nums)/TOTAL;
end
Create a script file and type the following code in it −
global TOTAL;
TOTAL = 10;
n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];
av = average(n)
When you run the file, it will display the following result −
av = 35.500
Importing data in MATLAB means loading data from an external file. The importdata function allows loading various data files of different formats. It has the following five forms −
Sr.No. | Function & Description |
---|---|
1 | A = importdata(filename) Loads data into array A from the file denoted by filename. |
2 | A = importdata('-pastespecial') Loads data from the system clipboard rather than from a file. |
3 | A = importdata(___, delimiterIn) Interprets delimiterIn as the column separator in ASCII file, filename, or the clipboard data. You can use delimiterIn with any of the input arguments in the above syntaxes. |
4 | A = importdata(___, delimiterIn, headerlinesIn) Loads data from ASCII file, filename, or the clipboard, reading numeric data starting from line headerlinesIn+1. |
5 | [A, delimiterOut, headerlinesOut] = importdata(___) Returns the detected delimiter character for the input ASCII file in delimiterOut and the detected number of header lines in headerlinesOut, using any of the input arguments in the previous syntaxes. |
By default, Octave does not have support for importdata() function, so you will have to search and install this package to make following examples work with your Octave installation.
Example 1
Let us load and display an image file. Create a script file and type the following code in it −
filename = 'smile.jpg';
A = importdata(filename);
image(A);
When you run the file, MATLAB displays the image file. However, you must store it in the current directory.
Example 2
In this example, we import a text file and specify Delimiter and Column Header. Let us create a space-delimited ASCII file with column headers, named weeklydata.txt.
Our text file weeklydata.txt looks like this −
SunDay MonDay TuesDay WednesDay ThursDay FriDay SaturDay
95.01 76.21 61.54 40.57 55.79 70.28 81.53
73.11 45.65 79.19 93.55 75.29 69.87 74.68
60.68 41.85 92.18 91.69 81.32 90.38 74.51
48.60 82.14 73.82 41.03 0.99 67.22 93.18
89.13 44.47 57.63 89.36 13.89 19.88 46.60
Create a script file and type the following code in it −
filename = 'weeklydata.txt';
delimiterIn = ' ';
headerlinesIn = 1;
A = importdata(filename,delimiterIn,headerlinesIn);
% View data
for k = [1:7]
disp(A.colheaders{1, k})
disp(A.data(:, k))
disp(' ')
end
When you run the file, it displays the following result −
SunDay
95.0100
73.1100
60.6800
48.6000
89.1300
MonDay
76.2100
45.6500
41.8500
82.1400
44.4700
TuesDay
61.5400
79.1900
92.1800
73.8200
57.6300
WednesDay
40.5700
93.5500
91.6900
41.0300
89.3600
ThursDay
55.7900
75.2900
81.3200
0.9900
13.8900
FriDay
70.2800
69.8700
90.3800
67.2200
19.8800
SaturDay
81.5300
74.6800
74.5100
93.1800
46.6000
Contoh 3
Dalam contoh ini, mari kita mengimpor data dari clipboard.
Salin baris berikut ke clipboard -
Mathematics is simple
Buat file script dan ketik kode berikut -
A = importdata('-pastespecial')
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
A =
'Mathematics is simple'
I / O File Tingkat Rendah
Fungsi importdata adalah fungsi tingkat tinggi. Fungsi I / O file tingkat rendah di MATLAB memungkinkan kontrol paling besar atas membaca atau menulis data ke file. Namun, fungsi ini memerlukan informasi yang lebih detail tentang file Anda agar berfungsi secara efisien.
MATLAB menyediakan fungsi berikut untuk operasi baca dan tulis pada tingkat byte atau karakter -
Fungsi | Deskripsi |
---|---|
fclose | Tutup satu atau semua file yang terbuka |
feof | Uji akhir file |
ferror | Informasi tentang kesalahan I / O file |
fgetl | Baca baris dari file, hapus karakter baris baru |
gadget | Baca baris dari file, pertahankan karakter baris baru |
pesolek | Buka file, atau dapatkan informasi tentang file yang terbuka |
fprintf | Tulis data ke file teks |
ketakutan | Membaca data dari file biner |
frewind | Pindahkan indikator posisi file ke awal file yang terbuka |
fscanf.dll | Membaca data dari file teks |
fseek | Pindah ke posisi yang ditentukan dalam file |
ftell | Posisi dalam file terbuka |
fwrite | Tulis data ke file biner |
Impor File Data Teks dengan I / O Tingkat Rendah
MATLAB menyediakan fungsi berikut untuk impor file data teks tingkat rendah -
Itu fscanf fungsi membaca data yang diformat dalam teks atau file ASCII.
Itu fgetl dan fgets fungsi membaca satu baris file pada satu waktu, di mana karakter baris baru memisahkan setiap baris.
Itu fread fungsi membaca aliran data pada tingkat byte atau bit.
Contoh
Kami memiliki file data teks 'myfile.txt' yang disimpan di direktori kerja kami. File tersebut menyimpan data curah hujan selama tiga bulan; Juni, Juli dan Agustus untuk tahun 2012.
Data di myfile.txt berisi rangkaian pengukuran waktu, bulan, dan curah hujan yang berulang di lima tempat. Data header menyimpan jumlah bulan M; jadi kami memiliki M set pengukuran.
File tersebut terlihat seperti ini -
Rainfall Data
Months: June, July, August
M = 3
12:00:00
June-2012
17.21 28.52 39.78 16.55 23.67
19.15 0.35 17.57 NaN 12.01
17.92 28.49 17.40 17.06 11.09
9.59 9.33 NaN 0.31 0.23
10.46 13.17 NaN 14.89 19.33
20.97 19.50 17.65 14.45 14.00
18.23 10.34 17.95 16.46 19.34
09:10:02
July-2012
12.76 16.94 14.38 11.86 16.89
20.46 23.17 NaN 24.89 19.33
30.97 49.50 47.65 24.45 34.00
18.23 30.34 27.95 16.46 19.34
30.46 33.17 NaN 34.89 29.33
30.97 49.50 47.65 24.45 34.00
28.67 30.34 27.95 36.46 29.34
15:03:40
August-2012
17.09 16.55 19.59 17.25 19.22
17.54 11.45 13.48 22.55 24.01
NaN 21.19 25.85 25.05 27.21
26.79 24.98 12.23 16.99 18.67
17.54 11.45 13.48 22.55 24.01
NaN 21.19 25.85 25.05 27.21
26.79 24.98 12.23 16.99 18.67
Kami akan mengimpor data dari file ini dan menampilkan data ini. Lakukan langkah-langkah berikut -
Buka file dengan fopen berfungsi dan mendapatkan pengenal file.
Jelaskan data dalam file dengan format specifiers, seperti '%s'untuk sebuah string,'%d'untuk integer, atau'%f'untuk bilangan floating-point.
Untuk melewati karakter literal dalam file, sertakan dalam deskripsi format. Untuk melewati bidang data, gunakan tanda bintang ('*') di penentu.
Misalnya, untuk membaca header dan mengembalikan nilai tunggal M, kita menulis -
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
Secara default, fscanfmembaca data sesuai dengan deskripsi format kami hingga tidak menemukan kecocokan data, atau mencapai akhir file. Di sini kita akan menggunakan for loop untuk membaca 3 set data dan setiap kali akan membaca 7 baris dan 5 kolom.
Kami akan membuat struktur bernama mydata di ruang kerja untuk menyimpan data yang dibaca dari file. Struktur ini memiliki tiga bidang - waktu , bulan , dan susunan data hujan .
Buat file skrip dan ketik kode berikut di dalamnya -
filename = '/data/myfile.txt';
rows = 7;
cols = 5;
% open the file
fid = fopen(filename);
% read the file headers, find M (number of months)
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
% read each set of measurements
for n = 1:M
mydata(n).time = fscanf(fid, '%s', 1);
mydata(n).month = fscanf(fid, '%s', 1);
% fscanf fills the array in column order,
% so transpose the results
mydata(n).raindata = ...
fscanf(fid, '%f', [rows, cols]);
end
for n = 1:M
disp(mydata(n).time), disp(mydata(n).month)
disp(mydata(n).raindata)
end
% close the file
fclose(fid);
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
12:00:00
June-2012
17.2100 17.5700 11.0900 13.1700 14.4500
28.5200 NaN 9.5900 NaN 14.0000
39.7800 12.0100 9.3300 14.8900 18.2300
16.5500 17.9200 NaN 19.3300 10.3400
23.6700 28.4900 0.3100 20.9700 17.9500
19.1500 17.4000 0.2300 19.5000 16.4600
0.3500 17.0600 10.4600 17.6500 19.3400
09:10:02
July-2012
12.7600 NaN 34.0000 33.1700 24.4500
16.9400 24.8900 18.2300 NaN 34.0000
14.3800 19.3300 30.3400 34.8900 28.6700
11.8600 30.9700 27.9500 29.3300 30.3400
16.8900 49.5000 16.4600 30.9700 27.9500
20.4600 47.6500 19.3400 49.5000 36.4600
23.1700 24.4500 30.4600 47.6500 29.3400
15:03:40
August-2012
17.0900 13.4800 27.2100 11.4500 25.0500
16.5500 22.5500 26.7900 13.4800 27.2100
19.5900 24.0100 24.9800 22.5500 26.7900
17.2500 NaN 12.2300 24.0100 24.9800
19.2200 21.1900 16.9900 NaN 12.2300
17.5400 25.8500 18.6700 21.1900 16.9900
11.4500 25.0500 17.5400 25.8500 18.6700
Ekspor data (atau keluaran) dalam MATLAB berarti menulis ke dalam file. MATLAB memungkinkan Anda untuk menggunakan data Anda di aplikasi lain yang membaca file ASCII. Untuk ini, MATLAB menyediakan beberapa opsi ekspor data.
Anda dapat membuat jenis file berikut -
File data ASCII berbentuk persegi dan dipisahkan dari larik.
File buku harian (atau log) penekanan tombol dan output teks yang dihasilkan.
File ASCII khusus yang menggunakan fungsi level rendah seperti fprintf.
MEX-file untuk mengakses rutinitas C / C ++ atau Fortran Anda yang menulis ke format file teks tertentu.
Selain itu, Anda juga dapat mengekspor data ke spreadsheet.
Ada dua cara untuk mengekspor larik numerik sebagai file data ASCII yang dipisahkan -
Menggunakan save fungsi dan menentukan -ascii kualifikasi
Menggunakan dlmwrite fungsi
Sintaks untuk menggunakan fungsi simpan adalah -
save my_data.out num_array -ascii
di mana, my_data.out adalah file data ASCII yang dipisahkan dibuat, num_array adalah array numerik dan−ascii adalah penspesifikasinya.
Sintaks untuk menggunakan dlmwrite fungsinya adalah -
dlmwrite('my_data.out', num_array, 'dlm_char')
dimana, my_data.out adalah file data ASCII yang dipisahkan, num_array adalah array numerik dan dlm_char adalah karakter pembatas.
Contoh
Contoh berikut menunjukkan konsep tersebut. Buat file script dan ketik kode berikut -
num_array = [ 1 2 3 4 ; 4 5 6 7; 7 8 9 0];
save array_data1.out num_array -ascii;
type array_data1.out
dlmwrite('array_data2.out', num_array, ' ');
type array_data2.out
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00
4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00
7.0000000e+00 8.0000000e+00 9.0000000e+00 0.0000000e+00
1 2 3 4
4 5 6 7
7 8 9 0
Harap dicatat bahwa perintah save -ascii dan fungsi dlmwrite tidak bekerja dengan array sel sebagai input. Untuk membuat file ASCII yang dipisahkan dari konten array sel, Anda bisa
Baik, konversikan larik sel menjadi matriks menggunakan cell2mat fungsi
Atau ekspor array sel menggunakan fungsi I / O file tingkat rendah.
Jika Anda menggunakan save berfungsi untuk menulis array karakter ke file ASCII, itu menulis ASCII yang setara dengan karakter ke file.
Misalnya, mari kita tulis kata 'halo' ke file -
h = 'hello';
save textdata.out h -ascii
type textdata.out
MATLAB menjalankan pernyataan di atas dan menampilkan hasil sebagai berikut. yang merupakan karakter dari string 'hello' dalam format ASCII 8 digit.
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
Menulis ke File Diary
File buku harian adalah log aktivitas sesi MATLAB Anda. Fungsi buku harian membuat salinan persis dari sesi Anda dalam file disk, tidak termasuk grafik.
Untuk mengaktifkan fungsi buku harian, ketik -
diary
Secara opsional, Anda dapat memberikan nama file log, misalnya -
diary logdata.out
Untuk mematikan fungsi buku harian -
diary off
Anda dapat membuka file buku harian di editor teks.
Mengekspor Data ke File Data Teks dengan I / O Tingkat Rendah
Sejauh ini, kami telah mengekspor array numerik. Namun, Anda mungkin perlu membuat file teks lain, termasuk kombinasi data angka dan karakter, file keluaran non-persegi, atau file dengan skema pengkodean non-ASCII. Untuk tujuan ini, MATLAB menyediakan level rendahfprintf fungsi.
Seperti dalam aktivitas file I / O level rendah, sebelum mengekspor, Anda perlu membuka atau membuat file dengan ekstensi fopenberfungsi dan mendapatkan pengenal file. Secara default, fopen membuka file untuk akses read-only. Anda harus menentukan izin untuk menulis atau menambahkan, seperti 'w' atau 'a'.
Setelah memproses file, Anda harus menutupnya dengan fclose(fid) fungsi.
Contoh berikut menunjukkan konsep -
Contoh
Buat file skrip dan ketik kode berikut di dalamnya -
% create a matrix y, with two rows
x = 0:10:100;
y = [x; log(x)];
% open a file for writing
fid = fopen('logtable.txt', 'w');
% Table Header
fprintf(fid, 'Log Function\n\n');
% print values in column order
% two values appear on each row of the file
fprintf(fid, '%f %f\n', y);
fclose(fid);
% display the file created
type logtable.txt
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
Log Function
0.000000 -Inf
10.000000 2.302585
20.000000 2.995732
30.000000 3.401197
40.000000 3.688879
50.000000 3.912023
60.000000 4.094345
70.000000 4.248495
80.000000 4.382027
90.000000 4.499810
100.000000 4.605170
Untuk memplot grafik suatu fungsi, Anda perlu mengambil langkah-langkah berikut -
Menetapkan x, dengan menentukan range of values untuk variabel x, yang fungsinya akan diplot
Tentukan fungsinya, y = f(x)
Panggil plot perintah, sebagai plot(x, y)
Contoh berikut akan menunjukkan konsep tersebut. Mari kita gambarkan fungsi sederhananyay = x untuk rentang nilai x dari 0 hingga 100, dengan kenaikan 5.
Buat file script dan ketik kode berikut -
x = [0:5:100];
y = x;
plot(x, y)
Saat Anda menjalankan file, MATLAB menampilkan plot berikut -
Mari kita ambil satu contoh lagi untuk memplot fungsi y = x 2 . Dalam contoh ini, kita akan menggambar dua grafik dengan fungsi yang sama, tetapi untuk kedua kalinya, kita akan mengurangi nilai kenaikan. Harap perhatikan bahwa saat kami menurunkan kenaikan, grafik menjadi lebih mulus.
Buat file script dan ketik kode berikut -
x = [1 2 3 4 5 6 7 8 9 10];
x = [-100:20:100];
y = x.^2;
plot(x, y)
Saat Anda menjalankan file, MATLAB menampilkan plot berikut -
Ubah file kode sedikit, kurangi kenaikan menjadi 5 -
x = [-100:5:100];
y = x.^2;
plot(x, y)
MATLAB menggambar grafik yang lebih halus -
Menambahkan Judul, Label, Garis Kisi dan Skala pada Grafik
MATLAB memungkinkan Anda untuk menambahkan judul, label di sepanjang sumbu x dan sumbu y, garis kisi dan juga untuk menyesuaikan sumbu untuk merapikan grafik.
Itu xlabel dan ylabel perintah menghasilkan label di sepanjang sumbu x dan sumbu y.
Itu title perintah memungkinkan Anda untuk meletakkan judul pada grafik.
Itu grid on perintah memungkinkan Anda untuk meletakkan garis grid pada grafik.
Itu axis equal perintah memungkinkan menghasilkan plot dengan faktor skala yang sama dan spasi pada kedua sumbu.
Itu axis square perintah menghasilkan plot persegi.
Contoh
Buat file script dan ketik kode berikut -
x = [0:0.01:10];
y = sin(x);
plot(x, y), xlabel('x'), ylabel('Sin(x)'), title('Sin(x) Graph'),
grid on, axis equal
MATLAB menghasilkan grafik berikut -
Menggambar Beberapa Fungsi pada Grafik yang Sama
Anda dapat menggambar beberapa grafik pada plot yang sama. Contoh berikut menunjukkan konsep -
Contoh
Buat file script dan ketik kode berikut -
x = [0 : 0.01: 10];
y = sin(x);
g = cos(x);
plot(x, y, x, g, '.-'), legend('Sin(x)', 'Cos(x)')
MATLAB menghasilkan grafik berikut -
Mengatur Warna pada Grafik
MATLAB menyediakan delapan pilihan warna dasar untuk menggambar grafik. Tabel berikut menunjukkan warna dan kodenya -
Kode | Warna |
---|---|
w | putih |
k | Hitam |
b | Biru |
r | Merah |
c | Cyan |
g | hijau |
m | Magenta |
y | Kuning |
Contoh
Mari kita gambar grafik dua polinomial
f (x) = 3x 4 + 2x 3 + 7x 2 + 2x + 9 dan
g (x) = 5x 3 + 9x + 2
Buat file script dan ketik kode berikut -
x = [-10 : 0.01: 10];
y = 3*x.^4 + 2 * x.^3 + 7 * x.^2 + 2 * x + 9;
g = 5 * x.^3 + 9 * x + 2;
plot(x, y, 'r', x, g, 'g')
Saat Anda menjalankan file, MATLAB menghasilkan grafik berikut -
Mengatur Skala Axis
Itu axisperintah memungkinkan Anda untuk mengatur skala sumbu. Anda dapat memberikan nilai minimum dan maksimum untuk sumbu x dan y menggunakan perintah sumbu dengan cara berikut -
axis ( [xmin xmax ymin ymax] )
Contoh berikut menunjukkan ini -
Contoh
Buat file script dan ketik kode berikut -
x = [0 : 0.01: 10];
y = exp(-x).* sin(2*x + 3);
plot(x, y), axis([0 10 -1 1])
Saat Anda menjalankan file, MATLAB menghasilkan grafik berikut -
Menghasilkan Sub-Plot
Saat Anda membuat larik plot pada gambar yang sama, masing-masing plot ini disebut subplot. Itusubplot perintah digunakan untuk membuat subplot.
Sintaks untuk perintahnya adalah -
subplot(m, n, p)
di mana, m dan n adalah jumlah baris dan kolom dari larik plot dan p menentukan tempat untuk meletakkan plot tertentu.
Setiap plot yang dibuat dengan perintah subplot dapat memiliki karakteristiknya masing-masing. Contoh berikut menunjukkan konsep -
Contoh
Mari kita buat dua plot -
y = e −1,5x sin (10x)
y = e −2x sin (10x)
Buat file script dan ketik kode berikut -
x = [0:0.01:5];
y = exp(-1.5*x).*sin(10*x);
subplot(1,2,1)
plot(x,y), xlabel('x'),ylabel('exp(–1.5x)*sin(10x)'),axis([0 5 -1 1])
y = exp(-2*x).*sin(10*x);
subplot(1,2,2)
plot(x,y),xlabel('x'),ylabel('exp(–2x)*sin(10x)'),axis([0 5 -1 1])
Saat Anda menjalankan file, MATLAB menghasilkan grafik berikut -
Bab ini akan terus mengeksplorasi kapabilitas plotting dan grafis MATLAB. Kami akan membahas -
- Menggambar diagram batang
- Menggambar kontur
- Plot tiga dimensi
Menggambar Diagram Batang
Itu barperintah menggambar diagram batang dua dimensi. Mari kita ambil contoh untuk mendemonstrasikan idenya.
Contoh
Mari kita buat kelas imajiner dengan 10 siswa. Kita tahu persentase nilai yang diperoleh siswa ini adalah 75, 58, 90, 87, 50, 85, 92, 75, 60, dan 95. Kita akan menggambar diagram batang untuk data ini.
Buat file script dan ketik kode berikut -
x = [1:10];
y = [75, 58, 90, 87, 50, 85, 92, 75, 60, 95];
bar(x,y), xlabel('Student'),ylabel('Score'),
title('First Sem:')
print -deps graph.eps
Saat Anda menjalankan file, MATLAB menampilkan diagram batang berikut -
Menggambar Kontur
Garis kontur dari fungsi dua variabel adalah kurva di mana fungsi tersebut memiliki nilai konstan. Garis kontur digunakan untuk membuat peta kontur dengan menggabungkan titik-titik dengan ketinggian yang sama di atas permukaan tertentu, seperti permukaan laut rata-rata.
MATLAB menyediakan a contour berfungsi untuk menggambar peta kontur.
Contoh
Mari kita buat peta kontur yang menunjukkan garis kontur untuk fungsi tertentu g = f (x, y). Fungsi ini memiliki dua variabel. Jadi, kita harus menghasilkan dua variabel independen, yaitu dua kumpulan data x dan y. Ini dilakukan dengan memanggilmeshgrid perintah.
Itu meshgrid Perintah digunakan untuk menghasilkan matriks elemen yang memberikan rentang x dan y bersama dengan spesifikasi kenaikan dalam setiap kasus.
Mari kita plot fungsi kita g = f (x, y), di mana −5 ≤ x ≤ 5, −3 ≤ y ≤ 3. Mari kita ambil kenaikan 0,1 untuk kedua nilai. Variabel ditetapkan sebagai -
[x,y] = meshgrid(–5:0.1:5, –3:0.1:3);
Terakhir, kita perlu menetapkan fungsinya. Misalkan fungsi kita menjadi: x 2 + y 2
Buat file script dan ketik kode berikut -
[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variables
g = x.^2 + y.^2; % our function
contour(x,y,g) % call the contour function
print -deps graph.eps
Saat Anda menjalankan file, MATLAB menampilkan peta kontur berikut -
Mari kita ubah sedikit kode untuk mempercantik peta
[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variables
g = x.^2 + y.^2; % our function
[C, h] = contour(x,y,g); % call the contour function
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
print -deps graph.eps
Saat Anda menjalankan file, MATLAB menampilkan peta kontur berikut -
Plot Tiga Dimensi
Plot tiga dimensi pada dasarnya menampilkan permukaan yang ditentukan oleh fungsi dalam dua variabel, g = f (x, y).
Seperti sebelumnya, untuk mendefinisikan g, pertama-tama kita membuat satu set (x, y) poin di atas domain fungsi menggunakan meshgridperintah. Selanjutnya, kami menetapkan fungsinya sendiri. Terakhir, kami menggunakansurf perintah untuk membuat plot permukaan.
Contoh berikut menunjukkan konsep -
Contoh
Mari kita buat peta permukaan 3D untuk fungsi g = xe - (x 2 + y 2 )
Buat file script dan ketik kode berikut -
[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps
Saat Anda menjalankan file, MATLAB menampilkan peta 3-D berikut -
Anda juga bisa menggunakan meshperintah untuk menghasilkan permukaan tiga dimensi. Namun,surf Perintah menampilkan garis penghubung dan permukaan permukaan dalam warna, sedangkan mesh perintah membuat permukaan wireframe dengan garis berwarna yang menghubungkan titik-titik yang menentukan.
Sejauh ini, kita telah melihat bahwa semua contoh bekerja di MATLAB serta GNU-nya, atau disebut Oktaf. Tetapi untuk menyelesaikan persamaan aljabar dasar, MATLAB dan Oktaf sedikit berbeda, jadi kami akan mencoba untuk membahas MATLAB dan Oktaf di bagian yang terpisah.
Kami juga akan membahas faktorisasi dan penyederhanaan ekspresi aljabar.
Memecahkan Persamaan Aljabar Dasar di MATLAB
Itu solvefungsi digunakan untuk memecahkan persamaan aljabar. Dalam bentuknya yang paling sederhana, fungsi selesaikan menggunakan persamaan yang diapit tanda kutip sebagai argumen.
Misalnya, mari kita selesaikan x dalam persamaan x-5 = 0
solve('x-5=0')
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
5
Anda juga dapat memanggil fungsi penyelesaian sebagai -
y = solve('x-5 = 0')
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
y =
5
Anda bahkan mungkin tidak memasukkan ruas kanan persamaan -
solve('x-5')
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
5
Jika persamaan melibatkan banyak simbol, MATLAB secara default mengasumsikan bahwa Anda sedang menyelesaikan x, namun fungsi penyelesaian memiliki bentuk lain -
solve(equation, variable)
dimana, Anda juga bisa menyebutkan variabelnya.
Sebagai contoh, mari kita selesaikan persamaan v - u - 3t 2 = 0, untuk v. Dalam kasus ini, kita harus menulis -
solve('v-u-3*t^2=0', 'v')
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
3*t^2 + u
Memecahkan Persamaan Aljabar Dasar dalam Oktaf
Itu roots fungsi digunakan untuk menyelesaikan persamaan aljabar dalam Oktaf dan Anda dapat menulis contoh di atas sebagai berikut -
Misalnya, mari kita selesaikan x dalam persamaan x-5 = 0
roots([1, -5])
Oktaf akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut -
ans = 5
Anda juga dapat memanggil fungsi penyelesaian sebagai -
y = roots([1, -5])
Oktaf akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut -
y = 5
Memecahkan Persamaan Kuadrat di MATLAB
Itu solvefungsi juga dapat memecahkan persamaan orde tinggi. Ini sering digunakan untuk menyelesaikan persamaan kuadrat. Fungsi mengembalikan akar persamaan dalam larik.
Contoh berikut menyelesaikan persamaan kuadrat x 2 -7x +12 = 0. Buat file script dan ketikkan kode berikut -
eq = 'x^2 -7*x + 12 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
The first root is:
3
The second root is:
4
Memecahkan Persamaan Kuadrat dalam Oktaf
Contoh berikut menyelesaikan persamaan kuadrat x 2 -7x +12 = 0 dalam Oktaf. Buat file script dan ketik kode berikut -
s = roots([1, -7, 12]);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
The first root is:
4
The second root is:
3
Memecahkan Persamaan Orde Tinggi di MATLAB
Itu solvefungsi juga dapat memecahkan persamaan orde tinggi. Sebagai contoh, mari kita selesaikan persamaan kubik sebagai (x-3) 2 (x-7) = 0
solve('(x-3)^2*(x-7)=0')
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
3
3
7
Dalam kasus persamaan orde tinggi, akar panjang mengandung banyak suku. Anda bisa mendapatkan nilai numerik dari akar tersebut dengan mengubahnya menjadi dua kali lipat. Contoh berikut menyelesaikan persamaan orde empat x 4 - 7x 3 + 3x 2 - 5x + 9 = 0.
Buat file script dan ketik kode berikut -
eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
disp('The third root is: '), disp(s(3));
disp('The fourth root is: '), disp(s(4));
% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));
Saat Anda menjalankan file, ia mengembalikan hasil berikut -
The first root is:
6.630396332390718431485053218985
The second root is:
1.0597804633025896291682772499885
The third root is:
- 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793*i
The fourth root is:
- 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i
Numeric value of first root
6.6304
Numeric value of second root
1.0598
Numeric value of third root
-0.3451 - 1.0778i
Numeric value of fourth root
-0.3451 + 1.0778i
Harap diperhatikan bahwa dua akar terakhir adalah bilangan kompleks.
Memecahkan Persamaan Orde Tinggi dalam Oktaf
Contoh berikut menyelesaikan persamaan orde empat x 4 - 7x 3 + 3x 2 - 5x + 9 = 0.
Buat file script dan ketik kode berikut -
v = [1, -7, 3, -5, 9];
s = roots(v);
% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));
Saat Anda menjalankan file, ia mengembalikan hasil berikut -
Numeric value of first root
6.6304
Numeric value of second root
-0.34509 + 1.07784i
Numeric value of third root
-0.34509 - 1.07784i
Numeric value of fourth root
1.0598
Menyelesaikan Sistem Persamaan di MATLAB
Itu solvefungsi juga dapat digunakan untuk menghasilkan solusi sistem persamaan yang melibatkan lebih dari satu variabel. Mari kita ambil contoh sederhana untuk mendemonstrasikan penggunaan ini.
Mari kita selesaikan persamaan -
5x + 9y = 5
3x - 6y = 4
Buat file script dan ketik kode berikut -
s = solve('5*x + 9*y = 5','3*x - 6*y = 4');
s.x
s.y
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
22/19
ans =
-5/57
Dengan cara yang sama, Anda dapat menyelesaikan sistem linier yang lebih besar. Pertimbangkan kumpulan persamaan berikut -
x + 3y -2z = 5
3x + 5y + 6z = 7
2x + 4y + 3z = 8
Menyelesaikan Sistem Persamaan dalam Oktaf
Kami memiliki pendekatan yang sedikit berbeda untuk menyelesaikan sistem persamaan linier 'n' dalam 'n' yang tidak diketahui. Mari kita ambil contoh sederhana untuk mendemonstrasikan penggunaan ini.
Mari kita selesaikan persamaan -
5x + 9y = 5
3x - 6y = 4
Sistem persamaan linier seperti itu dapat dituliskan sebagai persamaan matriks tunggal Ax = b, di mana A adalah matriks koefisien, b adalah vektor kolom yang berisi ruas kanan persamaan linier dan x adalah vektor kolom yang mewakili solusi sebagai ditampilkan pada program di bawah ini -
Buat file script dan ketik kode berikut -
A = [5, 9; 3, -6];
b = [5;4];
A \ b
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
1.157895
-0.087719
Dengan cara yang sama, Anda dapat menyelesaikan sistem linier yang lebih besar seperti yang diberikan di bawah ini -
x + 3y -2z = 5
3x + 5y + 6z = 7
2x + 4y + 3z = 8
Memperluas dan Mengumpulkan Persamaan di MATLAB
Itu expand dan collectfungsi memperluas dan mengumpulkan persamaan masing-masing. Contoh berikut menunjukkan konsep -
Ketika Anda bekerja dengan banyak fungsi simbolik, Anda harus menyatakan bahwa variabel Anda adalah simbolik.
Buat file script dan ketik kode berikut -
syms x %symbolic variable x
syms y %symbolic variable x
% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(sin(2*x))
expand(cos(x+y))
% collecting equations
collect(x^3 *(x-7))
collect(x^4*(x-3)*(x-5))
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
x^2 + 4*x - 45
ans =
x^4 + x^3 - 43*x^2 + 23*x + 210
ans =
2*cos(x)*sin(x)
ans =
cos(x)*cos(y) - sin(x)*sin(y)
ans =
x^4 - 7*x^3
ans =
x^6 - 8*x^5 + 15*x^4
Memperluas dan Mengumpulkan Persamaan dalam Oktaf
Anda harus memiliki symbolic paket, yang menyediakan expand dan collectberfungsi untuk memperluas dan mengumpulkan persamaan. Contoh berikut menunjukkan konsep -
Saat Anda bekerja dengan banyak fungsi simbolik, Anda harus menyatakan bahwa variabel Anda simbolis tetapi Oktaf memiliki pendekatan yang berbeda untuk mendefinisikan variabel simbolik. Perhatikan penggunaanSin dan Cos, yang juga didefinisikan dalam paket simbolik.
Buat file script dan ketik kode berikut -
% first of all load the package, make sure its installed.
pkg load symbolic
% make symbols module available
symbols
% define symbolic variables
x = sym ('x');
y = sym ('y');
z = sym ('z');
% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(Sin(2*x))
expand(Cos(x+y))
% collecting equations
collect(x^3 *(x-7), z)
collect(x^4*(x-3)*(x-5), z)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
-45.0+x^2+(4.0)*x
ans =
210.0+x^4-(43.0)*x^2+x^3+(23.0)*x
ans =
sin((2.0)*x)
ans =
cos(y+x)
ans =
x^(3.0)*(-7.0+x)
ans =
(-3.0+x)*x^(4.0)*(-5.0+x)
Faktorisasi dan Penyederhanaan Ekspresi Aljabar
Itu factor fungsi memfaktorkan ekspresi dan simplifyfungsi menyederhanakan ekspresi. Contoh berikut menunjukkan konsep -
Contoh
Buat file script dan ketik kode berikut -
syms x
syms y
factor(x^3 - y^3)
factor([x^2-y^2,x^3+y^3])
simplify((x^4-16)/(x^2-4))
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
(x - y)*(x^2 + x*y + y^2)
ans =
[ (x - y)*(x + y), (x + y)*(x^2 - x*y + y^2)]
ans =
x^2 + 4
MATLAB menyediakan berbagai cara untuk memecahkan masalah diferensial dan kalkulus integral, menyelesaikan persamaan diferensial dari berbagai derajat dan perhitungan batas. Yang terbaik dari semuanya, Anda dapat dengan mudah memplot grafik fungsi kompleks dan memeriksa titik maksimum, minimum, dan alat tulis lainnya pada grafik dengan menyelesaikan fungsi asli, serta turunannya.
Bab ini akan membahas masalah kalkulus. Pada bab ini, kita akan membahas konsep pra-kalkulus, yaitu menghitung batas fungsi dan memverifikasi sifat batas.
Dalam Diferensial bab berikutnya , kita akan menghitung turunan dari sebuah ekspresi dan menemukan maksima dan minima lokal pada grafik. Kami juga akan membahas penyelesaian persamaan diferensial.
Terakhir, pada bab Integrasi , kita akan membahas kalkulus integral.
Menghitung Batas
MATLAB menyediakan limitberfungsi untuk menghitung batas. Dalam bentuknya yang paling dasar, filelimit function mengambil ekspresi sebagai argumen dan menemukan batas ekspresi sebagai variabel independen menuju nol.
Sebagai contoh, mari kita hitung limit dari sebuah fungsi f (x) = (x 3 + 5) / (x 4 + 7), karena x cenderung nol.
syms x
limit((x^3 + 5)/(x^4 + 7))
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
5/7
Fungsi batas termasuk dalam bidang komputasi simbolik; Anda perlu menggunakansymsberfungsi untuk memberi tahu MATLAB variabel simbolik mana yang Anda gunakan. Anda juga dapat menghitung batas suatu fungsi, karena variabel cenderung ke beberapa angka selain nol. Untuk menghitung lim x-> a (f (x)), kami menggunakan perintah limit dengan argumen. Yang pertama adalah ekspresi dan yang kedua adalah angka, yang didekati x , ini dia a .
Sebagai contoh, mari kita hitung limit dari sebuah fungsi f (x) = (x-3) / (x-1), karena x cenderung 1.
limit((x - 3)/(x-1),1)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
NaN
Mari kita ambil contoh lain,
limit(x^2 + 5, 3)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
14
Menghitung Batas menggunakan Oktaf
Berikut ini adalah versi Oktaf dari contoh di atas menggunakan symbolic paket, coba jalankan dan bandingkan hasilnya -
pkg load symbolic
symbols
x = sym("x");
subs((x^3+5)/(x^4+7),x,0)
Oktaf akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut -
ans =
0.7142857142857142857
Verifikasi Sifat Dasar Batasan
Teorema Batas Aljabar memberikan beberapa sifat dasar batas. Ini adalah sebagai berikut -
Mari kita pertimbangkan dua fungsi -
- f (x) = (3x + 5) / (x - 3)
- g (x) = x 2 + 1.
Mari kita hitung batas fungsi karena x cenderung 5, dari kedua fungsi dan memverifikasi sifat dasar batas menggunakan dua fungsi dan MATLAB.
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
syms x
f = (3*x + 5)/(x-3);
g = x^2 + 1;
l1 = limit(f, 4)
l2 = limit (g, 4)
lAdd = limit(f + g, 4)
lSub = limit(f - g, 4)
lMult = limit(f*g, 4)
lDiv = limit (f/g, 4)
Saat Anda menjalankan file, ini akan menampilkan -
l1 =
17
l2 =
17
lAdd =
34
lSub =
0
lMult =
289
lDiv =
1
Verifikasi Properti Dasar Batas menggunakan Oktaf
Berikut ini adalah versi Oktaf dari contoh di atas menggunakan symbolic paket, coba jalankan dan bandingkan hasilnya -
pkg load symbolic
symbols
x = sym("x");
f = (3*x + 5)/(x-3);
g = x^2 + 1;
l1 = subs(f, x, 4)
l2 = subs (g, x, 4)
lAdd = subs (f+g, x, 4)
lSub = subs (f-g, x, 4)
lMult = subs (f*g, x, 4)
lDiv = subs (f/g, x, 4)
Oktaf akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut -
l1 =
17.0
l2 =
17.0
lAdd =
34.0
lSub =
0.0
lMult =
289.0
lDiv =
1.0
Batas Sisi Kiri dan Kanan
Ketika suatu fungsi memiliki diskontinuitas untuk beberapa nilai variabel tertentu, batasnya tidak ada pada titik itu. Dengan kata lain, limit dari sebuah fungsi f (x) memiliki diskontinuitas pada x = a, ketika nilai limit, ketika x mendekati x dari sisi kiri, tidak sama dengan nilai limit ketika x mendekati dari sisi kanan.
Ini mengarah pada konsep batas tangan kiri dan tangan kanan. Batas tangan kiri didefinisikan sebagai batas sebagai x -> a, dari kiri, yaitu x mendekati a, untuk nilai x <a. Batas tangan kanan didefinisikan sebagai batas sebagai x -> a, dari kanan, yaitu x mendekati a, untuk nilai x> a. Ketika batas tangan kiri dan batas tangan kanan tidak sama, batas itu tidak ada.
Mari kita pertimbangkan fungsi -
f(x) = (x - 3)/|x - 3|
Kami akan menunjukkan bahwa lim x-> 3 f (x) tidak ada. MATLAB membantu kami menetapkan fakta ini dengan dua cara -
- Dengan memplot grafik fungsi dan menunjukkan diskontinuitas.
- Dengan menghitung batas dan menunjukkan bahwa keduanya berbeda.
Batas tangan kiri dan tangan kanan dihitung dengan meneruskan string karakter 'kiri' dan 'kanan' ke perintah limit sebagai argumen terakhir.
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
f = (x - 3)/abs(x-3);
ezplot(f,[-1,5])
l = limit(f,x,3,'left')
r = limit(f,x,3,'right')
Saat Anda menjalankan file, MATLAB menggambar plot berikut
Setelah output berikut ini ditampilkan -
l =
-1
r =
1
MATLAB menyediakan diffperintah untuk menghitung turunan simbolik. Dalam bentuknya yang paling sederhana, Anda meneruskan fungsi yang ingin Anda bedakan ke perintah diff sebagai argumen.
Sebagai contoh, mari kita hitung turunan dari fungsi f (t) = 3t 2 + 2t -2
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
syms t
f = 3*t^2 + 2*t^(-2);
diff(f)
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
ans =
6*t - 4/t^3
Berikut adalah Oktaf yang setara dengan perhitungan di atas -
pkg load symbolic
symbols
t = sym("t");
f = 3*t^2 + 2*t^(-2);
differentiate(f,t)
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
ans =
-(4.0)*t^(-3.0)+(6.0)*t
Verifikasi Aturan Dasar Diferensiasi
Mari kita nyatakan secara singkat berbagai persamaan atau aturan untuk diferensiasi fungsi dan verifikasi aturan ini. Untuk tujuan ini, kita akan menulis f '(x) untuk turunan orde pertama dan f "(x) untuk turunan orde dua.
Berikut adalah aturan untuk diferensiasi -
Aturan 1
Untuk setiap fungsi f dan g dan bilangan real a dan b adalah turunan dari fungsi -
h(x) = af(x) + bg(x) sehubungan dengan x diberikan oleh -
h'(x) = af'(x) + bg'(x)
Aturan 2
Itu sum dan subtraction aturan menyatakan bahwa jika f dan g adalah dua fungsi, f 'dan g' adalah turunannya masing-masing, maka,
(f + g)' = f' + g'
(f - g)' = f' - g'
Aturan 3
Itu product Aturan menyatakan bahwa jika f dan g adalah dua fungsi, f 'dan g' adalah turunannya masing-masing, maka,
(f.g)' = f'.g + g'.f
Aturan 4
Itu quotient Aturan menyatakan bahwa jika f dan g adalah dua fungsi, f 'dan g' adalah turunannya masing-masing, maka,
(f/g)' = (f'.g - g'.f)/g2
Aturan 5
Itu polynomial atau aturan pangkat dasar menyatakan bahwa, jika y = f(x) = xn, kemudian f' = n. x(n-1)
Hasil langsung dari aturan ini adalah turunan dari setiap konstanta adalah nol, yaitu jika y = k, konstanta apa pun, lalu
f' = 0
Aturan 6
Itu chain aturan menyatakan bahwa, turunan dari fungsi suatu fungsi h(x) = f(g(x)) sehubungan dengan x adalah,
h'(x)= f'(g(x)).g'(x)
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
syms x
syms t
f = (x + 2)*(x^2 + 3)
der1 = diff(f)
f = (t^2 + 3)*(sqrt(t) + t^3)
der2 = diff(f)
f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2)
der3 = diff(f)
f = (2*x^2 + 3*x)/(x^3 + 1)
der4 = diff(f)
f = (x^2 + 1)^17
der5 = diff(f)
f = (t^3 + 3* t^2 + 5*t -9)^(-6)
der6 = diff(f)
Saat Anda menjalankan file, MATLAB menampilkan hasil berikut -
f =
(x^2 + 3)*(x + 2)
der1 =
2*x*(x + 2) + x^2 + 3
f =
(t^(1/2) + t^3)*(t^2 + 3)
der2 =
(t^2 + 3)*(3*t^2 + 1/(2*t^(1/2))) + 2*t*(t^(1/2) + t^3)
f =
(x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2)
der3 =
(2*x - 2)*(3*x^3 - 5*x^2 + 2) - (- 9*x^2 + 10*x)*(x^2 - 2*x + 1)
f =
(2*x^2 + 3*x)/(x^3 + 1)
der4 =
(4*x + 3)/(x^3 + 1) - (3*x^2*(2*x^2 + 3*x))/(x^3 + 1)^2
f =
(x^2 + 1)^17
der5 =
34*x*(x^2 + 1)^16
f =
1/(t^3 + 3*t^2 + 5*t - 9)^6
der6 =
-(6*(3*t^2 + 6*t + 5))/(t^3 + 3*t^2 + 5*t - 9)^7
Berikut adalah Oktaf yang setara dengan perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
t = sym("t");
f = (x + 2)*(x^2 + 3)
der1 = differentiate(f,x)
f = (t^2 + 3)*(t^(1/2) + t^3)
der2 = differentiate(f,t)
f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2)
der3 = differentiate(f,x)
f = (2*x^2 + 3*x)/(x^3 + 1)
der4 = differentiate(f,x)
f = (x^2 + 1)^17
der5 = differentiate(f,x)
f = (t^3 + 3* t^2 + 5*t -9)^(-6)
der6 = differentiate(f,t)
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
f =
(2.0+x)*(3.0+x^(2.0))
der1 =
3.0+x^(2.0)+(2.0)*(2.0+x)*x
f =
(t^(3.0)+sqrt(t))*(3.0+t^(2.0))
der2 =
(2.0)*(t^(3.0)+sqrt(t))*t+((3.0)*t^(2.0)+(0.5)*t^(-0.5))*(3.0+t^(2.0))
f =
(1.0+x^(2.0)-(2.0)*x)*(2.0-(5.0)*x^(2.0)+(3.0)*x^(3.0))
der3 =
(-2.0+(2.0)*x)*(2.0-(5.0)*x^(2.0)+(3.0)*x^(3.0))+((9.0)*x^(2.0)-(10.0)*x)*(1.0+x^(2.0)-(2.0)*x)
f =
(1.0+x^(3.0))^(-1)*((2.0)*x^(2.0)+(3.0)*x)
der4 =
(1.0+x^(3.0))^(-1)*(3.0+(4.0)*x)-(3.0)*(1.0+x^(3.0))^(-2)*x^(2.0)*((2.0)*x^(2.0)+(3.0)*x)
f =
(1.0+x^(2.0))^(17.0)
der5 =
(34.0)*(1.0+x^(2.0))^(16.0)*x
f =
(-9.0+(3.0)*t^(2.0)+t^(3.0)+(5.0)*t)^(-6.0)
der6 =
-(6.0)*(-9.0+(3.0)*t^(2.0)+t^(3.0)+(5.0)*t)^(-7.0)*(5.0+(3.0)*t^(2.0)+(6.0)*t)
Turunan dari Fungsi Eksponensial, Logaritmik dan Trigonometri
Tabel berikut menyediakan turunan dari fungsi eksponensial, logaritmik dan trigonometri yang umum digunakan -
Fungsi | Turunan |
---|---|
ca.x | c a.x .ln ca (ln adalah logaritma natural) |
ex | e x |
ln x | 1 / x |
lncx | 1 / x.ln c |
xx | x x . (1 + ln x) |
sin(x) | cos (x) |
cos(x) | -sin (x) |
tan(x) | sec 2 (x), atau 1 / cos 2 (x), atau 1 + tan 2 (x) |
cot(x) | -csc 2 (x), atau -1 / sin 2 (x), atau - (1 + cot 2 (x)) |
sec(x) | dtk (x) .tan (x) |
csc(x) | -csc (x) .cot (x) |
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
syms x
y = exp(x)
diff(y)
y = x^9
diff(y)
y = sin(x)
diff(y)
y = tan(x)
diff(y)
y = cos(x)
diff(y)
y = log(x)
diff(y)
y = log10(x)
diff(y)
y = sin(x)^2
diff(y)
y = cos(3*x^2 + 2*x + 1)
diff(y)
y = exp(x)/sin(x)
diff(y)
Saat Anda menjalankan file, MATLAB menampilkan hasil berikut -
y =
exp(x)
ans =
exp(x)
y =
x^9
ans =
9*x^8
y =
sin(x)
ans =
cos(x)
y =
tan(x)
ans =
tan(x)^2 + 1
y =
cos(x)
ans =
-sin(x)
y =
log(x)
ans =
1/x
y =
log(x)/log(10)
ans =
1/(x*log(10))
y =
sin(x)^2
ans =
2*cos(x)*sin(x)
y =
cos(3*x^2 + 2*x + 1)
ans =
-sin(3*x^2 + 2*x + 1)*(6*x + 2)
y =
exp(x)/sin(x)
ans =
exp(x)/sin(x) - (exp(x)*cos(x))/sin(x)^2
Berikut adalah Oktaf yang setara dengan perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
y = Exp(x)
differentiate(y,x)
y = x^9
differentiate(y,x)
y = Sin(x)
differentiate(y,x)
y = Tan(x)
differentiate(y,x)
y = Cos(x)
differentiate(y,x)
y = Log(x)
differentiate(y,x)
% symbolic packages does not have this support
%y = Log10(x)
%differentiate(y,x)
y = Sin(x)^2
differentiate(y,x)
y = Cos(3*x^2 + 2*x + 1)
differentiate(y,x)
y = Exp(x)/Sin(x)
differentiate(y,x)
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
y =
exp(x)
ans =
exp(x)
y =
x^(9.0)
ans =
(9.0)*x^(8.0)
y =
sin(x)
ans =
cos(x)
y =
tan(x)
ans =
1+tan(x)^2
y =
cos(x)
ans =
-sin(x)
y =
log(x)
ans =
x^(-1)
y =
sin(x)^(2.0)
ans =
(2.0)*sin(x)*cos(x)
y =
cos(1.0+(2.0)*x+(3.0)*x^(2.0))
ans =
-(2.0+(6.0)*x)*sin(1.0+(2.0)*x+(3.0)*x^(2.0))
y =
sin(x)^(-1)*exp(x)
ans =
sin(x)^(-1)*exp(x)-sin(x)^(-2)*cos(x)*exp(x)
Menghitung Derivatif Tingkat Tinggi
Untuk menghitung turunan yang lebih tinggi dari fungsi f, kita menggunakan sintaks diff(f,n).
Mari kita hitung turunan kedua dari fungsi y = f (x) = x .e -3x
f = x*exp(-3*x);
diff(f, 2)
MATLAB menjalankan kode dan mengembalikan hasil berikut -
ans =
9*x*exp(-3*x) - 6*exp(-3*x)
Berikut adalah Oktaf yang setara dengan perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
f = x*Exp(-3*x);
differentiate(f, x, 2)
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
ans =
(9.0)*exp(-(3.0)*x)*x-(6.0)*exp(-(3.0)*x)
Contoh
Dalam contoh ini, mari kita pecahkan masalah. Mengingat bahwa sebuah fungsiy = f(x) = 3 sin(x) + 7 cos(5x). Kita harus mencari tahu apakah persamaannyaf" + f = -5cos(2x) benar.
Buat file skrip dan ketikkan kode berikut ke dalamnya -
syms x
y = 3*sin(x)+7*cos(5*x); % defining the function
lhs = diff(y,2)+y; %evaluting the lhs of the equation
rhs = -5*cos(2*x); %rhs of the equation
if(isequal(lhs,rhs))
disp('Yes, the equation holds true');
else
disp('No, the equation does not hold true');
end
disp('Value of LHS is: '), disp(lhs);
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
No, the equation does not hold true
Value of LHS is:
-168*cos(5*x)
Berikut adalah Oktaf yang setara dengan perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
y = 3*Sin(x)+7*Cos(5*x); % defining the function
lhs = differentiate(y, x, 2) + y; %evaluting the lhs of the equation
rhs = -5*Cos(2*x); %rhs of the equation
if(lhs == rhs)
disp('Yes, the equation holds true');
else
disp('No, the equation does not hold true');
end
disp('Value of LHS is: '), disp(lhs);
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
No, the equation does not hold true
Value of LHS is:
-(168.0)*cos((5.0)*x)
Menemukan Maxima dan Minima dari sebuah Kurva
Jika kita mencari nilai maksimum dan minimum lokal untuk sebuah grafik, pada dasarnya kita mencari titik tertinggi atau terendah pada grafik fungsi di lokasi tertentu, atau untuk rentang nilai tertentu dari variabel simbolik.
Untuk fungsi y = f (x) titik-titik pada grafik di mana grafik memiliki kemiringan nol disebut stationary points. Dengan kata lain, titik stasioner adalah di mana f '(x) = 0.
Untuk mencari titik stasioner dari suatu fungsi yang kita turunkan, kita perlu menetapkan turunannya sama dengan nol dan menyelesaikan persamaannya.
Contoh
Mari kita cari titik stasioner dari fungsi f (x) = 2x 3 + 3x 2 - 12x + 17
Lakukan langkah-langkah berikut -
First let us enter the function and plot its graph.
syms x
y = 2*x^3 + 3*x^2 - 12*x + 17; % defining the function
ezplot(y)
MATLAB menjalankan kode dan mengembalikan plot berikut -
Berikut adalah kode setara Oktaf untuk contoh di atas -
pkg load symbolic
symbols
x = sym('x');
y = inline("2*x^3 + 3*x^2 - 12*x + 17");
ezplot(y)
print -deps graph.eps
Our aim is to find some local maxima and minima on the graph, so let us find the local maxima and minima for the interval [-2, 2] on the graph.
syms x
y = 2*x^3 + 3*x^2 - 12*x + 17; % defining the function
ezplot(y, [-2, 2])
MATLAB menjalankan kode dan mengembalikan plot berikut -
Berikut adalah kode setara Oktaf untuk contoh di atas -
pkg load symbolic
symbols
x = sym('x');
y = inline("2*x^3 + 3*x^2 - 12*x + 17");
ezplot(y, [-2, 2])
print -deps graph.eps
Next, let us compute the derivative.
g = diff(y)
MATLAB menjalankan kode dan mengembalikan hasil berikut -
g =
6*x^2 + 6*x - 12
Berikut adalah Oktaf yang setara dari perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
g =
-12.0+(6.0)*x+(6.0)*x^(2.0)
Let us solve the derivative function, g, to get the values where it becomes zero.
s = solve(g)
MATLAB menjalankan kode dan mengembalikan hasil berikut -
s =
1
-2
Berikut adalah Oktaf yang setara dengan perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)
roots([6, 6, -12])
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
g =
-12.0+(6.0)*x^(2.0)+(6.0)*x
ans =
-2
1
This agrees with our plot. So let us evaluate the function f at the critical points x = 1, -2. Kita dapat mengganti nilai dalam fungsi simbolik dengan menggunakan subs perintah.
subs(y, 1), subs(y, -2)
MATLAB menjalankan kode dan mengembalikan hasil berikut -
ans =
10
ans =
37
Berikut adalah Oktaf yang setara dengan perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)
roots([6, 6, -12])
subs(y, x, 1), subs(y, x, -2)
ans =
10.0
ans =
37.0-4.6734207789940138748E-18*I
Oleh karena itu, nilai minimum dan maksimum pada fungsi f (x) = 2x 3 + 3x 2 - 12x + 17, pada interval [-2,2] adalah 10 dan 37.
Memecahkan Persamaan Diferensial
MATLAB menyediakan dsolve perintah untuk menyelesaikan persamaan diferensial secara simbolis.
Bentuk paling dasar dari file dsolve perintah untuk mencari solusi persamaan tunggal adalah
dsolve('eqn')
dimana eqn adalah string teks yang digunakan untuk memasukkan persamaan.
Ini mengembalikan solusi simbolis dengan satu set konstanta arbitrer yang MATLAB beri label C1, C2, dan seterusnya.
Anda juga dapat menentukan kondisi awal dan batas untuk masalah tersebut, sebagai daftar yang dipisahkan koma mengikuti persamaan sebagai -
dsolve('eqn','cond1', 'cond2',…)
Untuk tujuan menggunakan perintah dsolve, derivatives are indicated with a D. Misalnya, persamaan seperti f '(t) = -2 * f + biaya (t) dimasukkan sebagai -
'Df = -2*f + cos(t)'
Turunan yang lebih tinggi ditunjukkan dengan mengikuti D dengan urutan turunannya.
Misalnya persamaan f "(x) + 2f '(x) = 5sin3x harus dimasukkan sebagai -
'D2y + 2Dy = 5*sin(3*x)'
Mari kita ambil contoh sederhana dari persamaan diferensial orde satu: y '= 5y.
s = dsolve('Dy = 5*y')
MATLAB menjalankan kode dan mengembalikan hasil berikut -
s =
C2*exp(5*t)
Mari kita ambil contoh lain dari persamaan diferensial orde dua sebagai: y "- y = 0, y (0) = -1, y '(0) = 2.
dsolve('D2y - y = 0','y(0) = -1','Dy(0) = 2')
MATLAB menjalankan kode dan mengembalikan hasil berikut -
ans =
exp(t)/2 - (3*exp(-t))/2
Integrasi berhubungan dengan dua jenis masalah yang pada dasarnya berbeda.
Pada tipe pertama, turunan dari suatu fungsi diberikan dan kita ingin mencari fungsinya. Oleh karena itu, pada dasarnya kami membalik proses diferensiasi. Proses kebalikan ini dikenal sebagai anti-diferensiasi, atau menemukan fungsi primitif, atau menemukanindefinite integral.
Jenis masalah kedua melibatkan penjumlahan sejumlah besar kuantitas yang sangat kecil dan kemudian mengambil batas ketika ukuran kuantitas mendekati nol, sedangkan jumlah suku cenderung tak terhingga. Proses ini mengarah pada definisi filedefinite integral.
Integral pasti digunakan untuk mencari luas, volume, pusat gravitasi, momen inersia, pekerjaan yang dilakukan oleh suatu gaya, dan dalam berbagai aplikasi lainnya.
Menemukan Integral Tak Terbatas Menggunakan MATLAB
Menurut definisi, jika turunan dari fungsi f (x) adalah f '(x), maka kita katakan bahwa integral tak tentu dari f' (x) terhadap x adalah f (x). Misalnya, karena turunan (terhadap x) dari x 2 adalah 2x, kita dapat mengatakan bahwa integral tak tentu dari 2x adalah x 2 .
Dalam simbol -
f'(x2) = 2x, oleh karena itu,
∫ 2xdx = x2.
Integral tak tentu tidak unik, karena turunan dari x 2 + c, untuk nilai konstanta c apa pun, juga akan menjadi 2x.
Ini diekspresikan dalam simbol sebagai -
∫ 2xdx = x2 + c.
Dimana, c disebut sebagai 'konstanta sembarang'.
MATLAB menyediakan file intperintah untuk menghitung integral dari ekspresi. Untuk mendapatkan ekspresi integral tak tentu dari suatu fungsi, kita menulis -
int(f);
Misalnya, dari contoh kami sebelumnya -
syms x
int(2*x)
MATLAB menjalankan pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
x^2
Contoh 1
Dalam contoh ini, mari kita temukan integral dari beberapa ekspresi yang umum digunakan. Buat file skrip dan ketik kode berikut di dalamnya -
syms x n
int(sym(x^n))
f = 'sin(n*t)'
int(sym(f))
syms a t
int(a*cos(pi*t))
int(a^x)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
piecewise([n == -1, log(x)], [n ~= -1, x^(n + 1)/(n + 1)])
f =
sin(n*t)
ans =
-cos(n*t)/n
ans =
(a*sin(pi*t))/pi
ans =
a^x/log(a)
Contoh 2
Buat file skrip dan ketik kode berikut di dalamnya -
syms x n
int(cos(x))
int(exp(x))
int(log(x))
int(x^-1)
int(x^5*cos(5*x))
pretty(int(x^5*cos(5*x)))
int(x^-5)
int(sec(x)^2)
pretty(int(1 - 10*x + 9 * x^2))
int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2)
pretty(int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2))
Perhatikan bahwa file pretty fungsi mengembalikan ekspresi dalam format yang lebih mudah dibaca.
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
sin(x)
ans =
exp(x)
ans =
x*(log(x) - 1)
ans =
log(x)
ans =
(24*cos(5*x))/3125 + (24*x*sin(5*x))/625 - (12*x^2*cos(5*x))/125 + (x^4*cos(5*x))/5 - (4*x^3*sin(5*x))/25 + (x^5*sin(5*x))/5
2 4
24 cos(5 x) 24 x sin(5 x) 12 x cos(5 x) x cos(5 x)
----------- + ------------- - -------------- + ------------
3125 625 125 5
3 5
4 x sin(5 x) x sin(5 x)
------------- + -----------
25 5
ans =
-1/(4*x^4)
ans =
tan(x)
2
x (3 x - 5 x + 1)
ans =
- (7*x^6)/12 - (3*x^5)/5 + (5*x^4)/8 + x^3/2
6 5 4 3
7 x 3 x 5 x x
- ---- - ---- + ---- + --
12 5 8 2
Menemukan Integral Pasti Menggunakan MATLAB
Menurut definisi, integral pasti pada dasarnya adalah batas penjumlahan. Kami menggunakan integral pasti untuk mencari area seperti area antara kurva dan sumbu x dan area antara dua kurva. Integral pasti juga dapat digunakan dalam situasi lain, di mana kuantitas yang dibutuhkan dapat dinyatakan sebagai batas penjumlahan.
Itu int fungsi dapat digunakan untuk integrasi tertentu dengan melewati batas yang ingin Anda hitung integralnya.
Menghitung
kami menulis,
int(x, a, b)
Misalnya, untuk menghitung nilai yang
int(x, 4, 9)
MATLAB menjalankan pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
65/2
Berikut adalah Oktaf yang setara dengan perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
f = x;
c = [1, 0];
integral = polyint(c);
a = polyval(integral, 9) - polyval(integral, 4);
display('Area: '), disp(double(a));
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
Area:
32.500
Solusi alternatif dapat diberikan menggunakan fungsi quad () yang disediakan oleh Oktaf sebagai berikut -
pkg load symbolic
symbols
f = inline("x");
[a, ierror, nfneval] = quad(f, 4, 9);
display('Area: '), disp(double(a));
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
Area:
32.500
Contoh 1
Mari kita hitung luas area antara sumbu x, dan kurva y = x 3 −2x + 5 serta ordinatnya x = 1 dan x = 2.
Area yang dibutuhkan diberikan oleh -
Buat file script dan ketik kode berikut -
f = x^3 - 2*x +5;
a = int(f, 1, 2)
display('Area: '), disp(double(a));
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
a =
23/4
Area:
5.7500
Berikut adalah Oktaf yang setara dengan perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
f = x^3 - 2*x +5;
c = [1, 0, -2, 5];
integral = polyint(c);
a = polyval(integral, 2) - polyval(integral, 1);
display('Area: '), disp(double(a));
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
Area:
5.7500
Solusi alternatif dapat diberikan menggunakan fungsi quad () yang disediakan oleh Oktaf sebagai berikut -
pkg load symbolic
symbols
x = sym("x");
f = inline("x^3 - 2*x +5");
[a, ierror, nfneval] = quad(f, 1, 2);
display('Area: '), disp(double(a));
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
Area:
5.7500
Contoh 2
Temukan luas di bawah kurva: f (x) = x 2 cos (x) untuk −4 ≤ x ≤ 9.
Buat file script dan tulis kode berikut -
f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));
Saat Anda menjalankan file, MATLAB memplot grafik -
Outputnya diberikan di bawah ini -
a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
Area:
0.3326
Berikut adalah Oktaf yang setara dengan perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
f = inline("x^2*cos(x)");
ezplot(f, [-4,9])
print -deps graph.eps
[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));
MATLAB merepresentasikan polinomial sebagai vektor baris yang berisi koefisien yang diurutkan berdasarkan pangkat turun. Misalnya, persamaan P (x) = x 4 + 7x 3 - 5x + 9 dapat direpresentasikan sebagai -
p = [1 7 0 -5 9];
Mengevaluasi Polinomial
Itu polyvalfungsi digunakan untuk mengevaluasi polinomial pada nilai yang ditentukan. Misalnya, untuk mengevaluasi polinomial kita sebelumnyap, pada x = 4, ketik -
p = [1 7 0 -5 9];
polyval(p,4)
MATLAB menjalankan pernyataan di atas dan mengembalikan hasil berikut -
ans = 693
MATLAB juga menyediakan file polyvalmberfungsi untuk mengevaluasi matriks polinomial. Polinomial matriks adalah apolynomial dengan matriks sebagai variabel.
Sebagai contoh, mari kita membuat matriks persegi X dan mengevaluasi polinom p, di X -
p = [1 7 0 -5 9];
X = [1 2 -3 4; 2 -5 6 3; 3 1 0 2; 5 -7 3 8];
polyvalm(p, X)
MATLAB menjalankan pernyataan di atas dan mengembalikan hasil berikut -
ans =
2307 -1769 -939 4499
2314 -2376 -249 4695
2256 -1892 -549 4310
4570 -4532 -1062 9269
Menemukan Akar Polinomial
Itu rootsfungsi menghitung akar polinomial. Misalnya, untuk menghitung akar dari polinom p kita, ketik -
p = [1 7 0 -5 9];
r = roots(p)
MATLAB menjalankan pernyataan di atas dan mengembalikan hasil berikut -
r =
-6.8661 + 0.0000i
-1.4247 + 0.0000i
0.6454 + 0.7095i
0.6454 - 0.7095i
Fungsinya polyadalah kebalikan dari fungsi akar dan kembali ke koefisien polinomial. Misalnya -
p2 = poly(r)
MATLAB menjalankan pernyataan di atas dan mengembalikan hasil berikut -
p2 =
Columns 1 through 3:
1.00000 + 0.00000i 7.00000 + 0.00000i 0.00000 + 0.00000i
Columns 4 and 5:
-5.00000 - 0.00000i 9.00000 + 0.00000i
Pemasangan Kurva Polinomial
Itu polyfitfungsi menemukan koefisien polinomial yang sesuai dengan sekumpulan data dalam arti kuadrat-terkecil. Jika x dan y adalah dua vektor yang berisi data x dan y untuk dipasang ke polinomial derajat-n, maka kita mendapatkan polinom yang cocok dengan data tersebut dengan menulis -
p = polyfit(x,y,n)
Contoh
Buat file script dan ketik kode berikut -
x = [1 2 3 4 5 6]; y = [5.5 43.1 128 290.7 498.4 978.67]; %data
p = polyfit(x,y,4) %get the polynomial
% Compute the values of the polyfit estimate over a finer range,
% and plot the estimate over the real data values for comparison:
x2 = 1:.1:6;
y2 = polyval(p,x2);
plot(x,y,'o',x2,y2)
grid on
Saat Anda menjalankan file, MATLAB menampilkan hasil berikut -
p =
4.1056 -47.9607 222.2598 -362.7453 191.1250
Dan plot grafik berikut -
MATLAB menyediakan perintah untuk bekerja dengan transformasi, seperti transformasi Laplace dan Fourier. Transformasi digunakan dalam sains dan teknik sebagai alat untuk menyederhanakan analisis dan melihat data dari sudut lain.
Misalnya, Transformasi Fourier memungkinkan kita untuk mengubah sinyal yang direpresentasikan sebagai fungsi waktu menjadi fungsi frekuensi. Transformasi Laplace memungkinkan kita untuk mengubah persamaan diferensial menjadi persamaan aljabar.
MATLAB menyediakan laplace, fourier dan fft perintah untuk bekerja dengan transformasi Laplace, Fourier dan Fast Fourier.
Transformasi Laplace
Transformasi Laplace dari fungsi waktu f (t) diberikan oleh integral berikut -
Transformasi Laplace juga dilambangkan sebagai transformasi dari f (t) menjadi F (s). Anda dapat melihat proses transformasi atau integrasi ini mengubah f (t), sebuah fungsi dari variabel simbolik t, menjadi fungsi lain F (s), dengan variabel lain s.
Transformasi Laplace mengubah persamaan diferensial menjadi persamaan aljabar. Untuk menghitung transformasi Laplace dari sebuah fungsi f (t), tulis -
laplace(f(t))
Contoh
Dalam contoh ini, kami akan menghitung transformasi Laplace dari beberapa fungsi yang umum digunakan.
Buat file script dan ketik kode berikut -
syms s t a b w
laplace(a)
laplace(t^2)
laplace(t^9)
laplace(exp(-b*t))
laplace(sin(w*t))
laplace(cos(w*t))
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
1/s^2
ans =
2/s^3
ans =
362880/s^10
ans =
1/(b + s)
ans =
w/(s^2 + w^2)
ans =
s/(s^2 + w^2)
Transformasi Laplace Terbalik
MATLAB memungkinkan kita untuk menghitung transformasi Laplace terbalik menggunakan perintah ilaplace.
Sebagai contoh,
ilaplace(1/s^3)
MATLAB akan mengeksekusi pernyataan di atas dan menampilkan hasilnya -
ans =
t^2/2
Contoh
Buat file script dan ketik kode berikut -
syms s t a b w
ilaplace(1/s^7)
ilaplace(2/(w+s))
ilaplace(s/(s^2+4))
ilaplace(exp(-b*t))
ilaplace(w/(s^2 + w^2))
ilaplace(s/(s^2 + w^2))
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
t^6/720
ans =
2*exp(-t*w)
ans =
cos(2*t)
ans =
ilaplace(exp(-b*t), t, x)
ans =
sin(t*w)
ans =
cos(t*w)
Transformasi Fourier
Transformasi Fourier umumnya mengubah fungsi matematika waktu, f (t), menjadi fungsi baru, kadang-kadang dilambangkan dengan atau F, yang argumennya adalah frekuensi dengan satuan siklus / s (hertz) atau radian per detik. Fungsi baru ini kemudian dikenal sebagai transformasi Fourier dan / atau spektrum frekuensi dari fungsi f.
Contoh
Buat file skrip dan ketik kode berikut di dalamnya -
syms x
f = exp(-2*x^2); %our function
ezplot(f,[-2,2]) % plot of our function
FT = fourier(f) % Fourier transform
Saat Anda menjalankan file, MATLAB memplot grafik berikut -
Hasil berikut ditampilkan -
FT =
(2^(1/2)*pi^(1/2)*exp(-w^2/8))/2
Merencanakan transformasi Fourier sebagai -
ezplot(FT)
Memberikan grafik berikut -
Transformasi Fourier Terbalik
MATLAB menyediakan ifourierperintah untuk menghitung transformasi Fourier terbalik dari suatu fungsi. Sebagai contoh,
f = ifourier(-2*exp(-abs(w)))
MATLAB akan mengeksekusi pernyataan di atas dan menampilkan hasilnya -
f =
-2/(pi*(x^2 + 1))
GNU Octave adalah bahasa pemrograman tingkat tinggi seperti MATLAB dan sebagian besar kompatibel dengan MATLAB. Ini juga digunakan untuk perhitungan numerik.
Oktaf memiliki fitur umum berikut dengan MATLAB -
- matriks adalah tipe data fundamental
- itu memiliki dukungan bawaan untuk bilangan kompleks
- itu memiliki fungsi dan perpustakaan matematika built-in
- itu mendukung fungsi yang ditentukan pengguna
GNU Octave juga merupakan perangkat lunak yang dapat didistribusikan ulang secara bebas. Anda dapat mendistribusikan dan / atau memodifikasinya di bawah ketentuan GNU General Public License (GPL) yang diterbitkan oleh Free Software Foundation.
MATLAB vs Oktaf
Sebagian besar program MATLAB berjalan di Oktaf, tetapi beberapa program Oktaf mungkin tidak berjalan di MATLAB karena, Oktaf mengizinkan beberapa sintaks yang tidak oleh MATLAB.
Misalnya, MATLAB hanya mendukung tanda kutip tunggal, tetapi Oktaf mendukung tanda kutip tunggal dan ganda untuk menentukan string. Jika Anda mencari tutorial tentang Oktaf, silakan ikuti tutorial ini dari awal yang mencakup MATLAB serta Oktaf.
Contoh yang Kompatibel
Hampir semua contoh yang tercakup dalam tutorial ini kompatibel dengan MATLAB serta Oktaf. Mari kita coba contoh berikut di MATLAB dan Oktaf yang menghasilkan hasil yang sama tanpa perubahan sintaks -
Contoh ini membuat peta permukaan 3D untuk fungsi g = xe - (x 2 + y 2 ) . Buat file script dan ketik kode berikut -
[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps
Saat Anda menjalankan file, MATLAB menampilkan peta 3-D berikut -
Contoh yang Tidak Sesuai
Meskipun semua fungsi inti MATLAB tersedia dalam Oktaf, ada beberapa fungsi misalnya, Kalkulus Diferensial & Integrasi, yang tidak sama persis dalam kedua bahasa tersebut. Tutorial ini mencoba memberikan kedua jenis contoh yang berbeda dalam sintaksnya.
Pertimbangkan contoh berikut di mana MATLAB dan Oktaf menggunakan fungsi yang berbeda untuk mendapatkan luas kurva: f (x) = x 2 cos (x) untuk −4 ≤ x ≤ 9. Berikut ini adalah versi MATLAB dari kode -
f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));
Saat Anda menjalankan file, MATLAB memplot grafik -
Hasil berikut ditampilkan
a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
Area:
0.3326
Tetapi untuk memberikan area kurva yang sama di Oktaf, Anda harus memanfaatkan symbolic paket sebagai berikut -
pkg load symbolic
symbols
x = sym("x");
f = inline("x^2*cos(x)");
ezplot(f, [-4,9])
print -deps graph.eps
[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));
Simulink adalah simulasi dan lingkungan desain berbasis model untuk sistem dinamis dan tertanam, terintegrasi dengan MATLAB. Simulink, juga dikembangkan oleh MathWorks, adalah alat bahasa pemrograman grafis aliran data untuk pemodelan, simulasi, dan analisis sistem dinamis multi-domain. Ini pada dasarnya adalah alat diagram blok grafis dengan kumpulan perpustakaan blok yang dapat disesuaikan.
Ini memungkinkan Anda untuk memasukkan algoritma MATLAB ke dalam model serta mengekspor hasil simulasi ke MATLAB untuk analisis lebih lanjut.
Simulink mendukung -
- desain tingkat sistem
- simulation
- pembuatan kode otomatis
- pengujian dan verifikasi sistem tertanam
Ada beberapa produk tambahan lain yang disediakan oleh MathWorks serta produk perangkat keras dan perangkat lunak pihak ketiga yang tersedia untuk digunakan dengan Simulink.
Daftar berikut memberikan gambaran singkat tentang beberapa di antaranya -
Stateflow memungkinkan mengembangkan mesin negara dan diagram alir.
Simulink Coder memungkinkan pembuatan kode sumber C untuk implementasi sistem secara real-time secara otomatis.
xPC Target bersama dengan x86-based real-time systems menyediakan lingkungan untuk mensimulasikan dan menguji model Simulink dan Stateflow secara real-time pada sistem fisik.
Embedded Coder mendukung target tertanam tertentu.
HDL Coder memungkinkan untuk secara otomatis menghasilkan VHDL dan Verilog yang dapat disintesis.
SimEvents menyediakan perpustakaan blok bangunan grafis untuk pemodelan sistem antrian.
Simulink mampu memverifikasi dan memvalidasi model secara sistematis melalui pemeriksaan gaya pemodelan, penelusuran persyaratan, dan analisis cakupan model.
Simulink Design Verifier memungkinkan Anda mengidentifikasi kesalahan desain dan membuat skenario kasus uji untuk pemeriksaan model.
Menggunakan Simulink
Untuk membuka Simulink, ketik ruang kerja MATLAB -
simulink
Simulink dibuka dengan Library Browser. Library Browser digunakan untuk membangun model simulasi.
Di panel jendela sisi kiri, Anda akan menemukan beberapa pustaka yang dikategorikan berdasarkan berbagai sistem, mengklik masing-masing akan menampilkan blok desain di panel jendela kanan.
Model Bangunan
Untuk membuat model baru, klik Newpada toolbar Library Browser. Ini membuka jendela model baru tanpa judul.
Model Simulink adalah diagram blok.
Elemen model ditambahkan dengan memilih elemen yang sesuai dari Library Browser dan menyeretnya ke jendela Model.
Sebagai alternatif, Anda dapat menyalin elemen model dan menempelkannya ke jendela model.
Contoh
Seret dan lepas item dari perpustakaan Simulink untuk membuat proyek Anda.
Untuk tujuan contoh ini, dua blok akan digunakan untuk simulasi - A Source (sinyal) dan a Sink(ruang lingkup). Generator sinyal (sumber) menghasilkan sinyal analog, yang kemudian akan divisualisasikan secara grafis oleh scope (sink).
Mulailah dengan menyeret blok yang diperlukan dari perpustakaan ke jendela proyek. Kemudian, hubungkan blok bersama-sama yang dapat dilakukan dengan menyeret konektor dari titik koneksi di satu blok ke blok lainnya.
Mari kita seret blok 'Sine Wave' ke dalam model.
Pilih 'Sinks' dari perpustakaan dan seret blok 'Cakupan' ke dalam model.
Tarik garis sinyal dari output blok Gelombang Sinus ke input blok Scope.
Jalankan simulasi dengan menekan 'Run', menjaga semua parameter default (Anda dapat mengubahnya dari menu Simulasi)
Anda harus mendapatkan grafik di bawah ini dari ruang lingkup.