Setiap variabel yang dibuat pada sesi MATLAB menempati sebuah workspace, yaitu kumpulan variabel yang hidup di memori selama sesi berjalan. Topik ini membahas pengelolaan workspace: mendaftar variabel dengan who, memeriksa ukuran dan tipenya dengan whos, membersihkan dengan clear, memeriksa keberadaan nama dengan exist, serta menyimpan dan memuat variabel lewat berkas .mat. Keterampilan ini menjaga sesi tetap terkendali ketika data bertambah dan menjadi jembatan untuk melanjutkan pekerjaan pada sesi berikutnya.
Workspace dan perintah who#
Isi workspace tumbuh mengikuti pekerjaan: setiap pernyataan penugasan menambah atau menimpa satu nama, dan variabel tetap hidup sampai sesi ditutup atau dibersihkan secara eksplisit. Dalam sesi panjang yang memuat pencobaan berulang, jejak variabel antara seperti ini menumpuk diam-diam. Karena itu, mendaftar isi workspace menjadi kebiasaan pembuka sebelum perhitungan penting dijalankan.
Perintah who menampilkan daftar nama seluruh variabel yang saat itu hidup. Daftar ini menjadi pemeriksaan pertama ketika hasil perhitungan terasa aneh, karena variabel lama yang tertinggal sering ikut memengaruhi perhitungan baru. Agar keluarannya deterministik, variabel contoh dibuat lebih dahulu pada blok yang sama dengan pemanggilan who.
nilai = [78 85 90];
nama = 'Citra';
A = [1 2; 3 4];
whoVariables visible from the current scope:
A nama nilaiTiga variabel tersebut muncul sesuai urutan abjad. Pada sesi nyata yang telah lama berjalan, daftar ini dapat jauh lebih panjang dan menyingkap variabel yang sebenarnya sudah tidak diperlukan. Perintah who tidak melaporkan ukuran maupun tipe datanya, sehingga pemeriksaan yang lebih rinci memerlukan whos.
Rincian variabel dengan whos#
Perintah whos menampilkan tabel yang memuat nama, ukuran, banyak byte, dan kelas setiap variabel. Kelas menyatakan tipe data, misalnya double untuk bilangan pecahan presisi ganda dan char untuk teks.
whosVariables visible from the current scope:
variables in scope: top scope
Attr Name Size Bytes Class
==== ==== ==== ===== =====
A 2x2 32 double
nama 1x5 5 char
nilai 1x3 24 double
Total is 12 elements using 61 bytesTabel tersebut memperlihatkan A sebagai matriks kelas double yang memuat 32 byte, nama sebagai teks lima karakter kelas char, dan nilai sebagai vektor baris tiga elemen. Baris terakhir merangkum jumlah elemen dan total byte yang digunakan seluruh variabel. Ukuran pada kolom Size sering menjadi petunjuk cepat untuk mendeteksi kekeliruan orientasi, misalnya variabel yang diharapkan berupa vektor kolom ternyata berupa vektor baris . Kolom Bytes membantu memperkirakan muatan data besar, karena tabel dengan jutaan elemen terlihat wajar di daftar nama tetapi terlihat jelas bobotnya di kolom ini.
Membersihkan variabel dengan clear#
Perintah clear menghapus variabel dari workspace. Bentuk clear nama menghapus variabel tertentu, sedangkan clear tanpa argumen menghapus seluruh variabel sekaligus.
clear nama
whoVariables visible from the current scope:
A nilaiVariabel nama hilang dari daftar sementara A dan nilai tetap hidup. Pembersihan selektif seperti ini digunakan untuk membuang data antara yang tidak lagi diperlukan tanpa memengaruhi variabel lain. Sebaliknya, clear tanpa argumen mengosongkan seluruh workspace, dan keadaan kosong itu dapat diperiksa dengan exist yang mengembalikan nol ketika variabel yang ditanyakan tidak ada.
clear
exist('nilai', 'var')ans = 0Fungsi exist memeriksa keberadaan sebuah nama dan mengembalikan angka yang menandakan jenisnya. Nilai satu berarti variabel dengan nama itu hidup, nilai nol berarti tidak ada, dan nilai dua berarti berkas dengan nama itu ditemukan. Bentuk lengkapnya selalu menyertakan jenis yang diperiksa sebagai argumen kedua, misalnya exist('nilai', 'var') untuk variabel dan exist('data.mat', 'file') untuk berkas.
Menyimpan dan memuat berkas .mat#
Perintah save menuliskan variabel terpilih ke sebuah berkas .mat, dan load membacanya kembali ke workspace. Bentuk perintah save menyebut nama berkas lebih dahulu, lalu disusul daftar variabel yang disimpan.
% arsip_nilai.m: menyimpan variabel ke berkas .mat lalu memuatnya kembali
nilai = [78 85 90 66 92];
nama = 'Citra';
% simpan dua variabel ke berkas data.mat
save data.mat nilai nama
% bersihkan workspace lalu muat ulang dari berkas
clear
load data.mat
disp('variabel yang hidup setelah load:')
who
disp('isi nilai:')
disp(nilai)
fprintf('nama: %s\n', nama)variabel yang hidup setelah load:
Variables visible from the current scope:
nama nilai
isi nilai:
78 85 90 66 92
nama: CitraSkrip tersebut menyimpan nilai dan nama ke data.mat, mengosongkan workspace dengan clear, lalu memuat ulang berkas itu dengan load. Hasil load terlihat pada daftar who yang kembali memuat kedua variabel beserta isinya yang utuh. Urutan ini meniru alur kerja nyata: data mentah disimpan pada akhir pengukuran, lalu dimuat kembali pada saat analisis. Tanpa penyimpanan, seluruh variabel hilang ketika MATLAB ditutup.
Bentuk pemanggilan fungsi juga sah: seluruh argumen ditulis sebagai teks di dalam tanda kurung. Bentuk ini menjadi pilihan ketika nama berkas atau daftar variabel dibangun secara programatik. Pemanggilan berikut menggunakan bentuk fungsi dengan format -v7 yang dapat dibaca lintas implementasi.
suhu = [36.5 36.8 37.1];
save('-v7', 'suhu.mat', 'suhu');
exist('suhu.mat', 'file')
clear suhu
load('suhu.mat')
exist('suhu', 'var')ans = 2
ans = 1Pemeriksaan exist pertama mengembalikan dua karena berkas suhu.mat sudah dibuat, kemudian setelah clear suhu dan load, pemeriksaan kedua mengembalikan satu karena variabel suhu hidup kembali. Perintah save tanpa format tambahan tetap sah pada kedua implementasi, hanya saja berkas hasilnya menggunakan format bawaan masing-masing sehingga bentuk -v7 menjadi pilihan ketika berkas akan dipertukarkan.
Kesalahan umum#
- Lupa titik koma penekan gema. Pernyataan pembuatan variabel tanpa titik koma menampilkan hasilnya satu per satu. Ketika ratusan baris data dimuat dari skrip, gema ini memperlambat pembacaan dan menutupi keluaran yang benar-benar penting, sehingga hasil yang perlu diperiksa sebaiknya ditampilkan secara eksplisit dengan disp atau fprintf.
- clear tanpa argumen yang tidak disengaja. Satu kata tanpa daftar variabel menghapus seluruh workspace. Kebiasaan mengakhiri skrip dengan clear sebaiknya diganti dengan pembersihan selektif yang menyebut nama variabel antara satu per satu, sehingga data utama yang masih diperlukan tetap hidup untuk dianalisis lebih lanjut.
- Menimpa variabel saat load. Berkas .mat menyimpan nama variabel apa adanya, sehingga load menimpa variabel yang sedang hidup bila namanya sama. Kondisi ini tidak memicu error sama sekali, dan nilai lama hilang tanpa jejak. Periksa dengan who lebih dahulu, atau muat ke ruang nama terpisah dengan bentuk S = load(‘data.mat’) yang hasilnya menjadi bidang pada struktur S.
Ringkasan#
- who mendaftar nama variabel, sedangkan whos menambahkan ukuran, byte, dan kelas untuk setiap variabel.
- clear nama menghapus variabel tertentu dan clear tanpa argumen mengosongkan seluruh workspace tanpa konfirmasi.
- exist memeriksa keberadaan nama dengan jenis yang ditetapkan argumen keduanya, misalnya
varuntuk variabel danfileuntuk berkas. - save dan load memindahkan variabel ke dan dari berkas .mat, dan bentuk -v7 menjaga berkas dapat dibaca lintas implementasi.
Referensi#
- who — MathWorks — Rujukan perintah who beserta keluarannya.
- save — MathWorks — Rujukan perintah save untuk berkas .mat beserta formatnya.
- exist — MathWorks — Rujukan fungsi exist untuk pemeriksaan keberadaan nama.