MATLAB – Angka: Tipe, Penyimpanan, dan Konversi
MATLAB mendukung berbagai kelas numerik yang mencakup integer bertanda dan tanpa tanda serta bilangan floating-point presisi tunggal dan ganda. Secara default, MATLAB menyimpan semua nilai numerik sebagai bilangan floating-point presisi ganda.
Anda dapat memilih untuk menyimpan bilangan atau array bilangan apapun sebagai integer atau sebagai bilangan presisi tunggal.
Semua tipe numerik mendukung operasi array dasar dan operasi matematika.
Konversi ke Berbagai Tipe Data Numerik
MATLAB menyediakan fungsi berikut untuk mengonversi ke berbagai tipe data numerik −
| Fungsi | Tujuan |
|---|
| double | Mengonversi ke bilangan presisi ganda |
| single | Mengonversi ke bilangan presisi tunggal |
| int8 | Mengonversi ke integer bertanda 8-bit |
| int16 | Mengonversi ke integer bertanda 16-bit |
| int32 | Mengonversi ke integer bertanda 32-bit |
| int64 | Mengonversi ke integer bertanda 64-bit |
| uint8 | Mengonversi ke integer tanpa tanda 8-bit |
| uint16 | Mengonversi ke integer tanpa tanda 16-bit |
| uint32 | Mengonversi ke integer tanpa tanda 32-bit |
| uint64 | Mengonversi ke integer tanpa tanda 64-bit |
Contoh
Buat file skrip dan ketik kode berikut −
Live Demo
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
Ketika Anda menjalankan file, itu menunjukkan hasil 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 perluas contoh sebelumnya sedikit lagi. Buat file skrip dan ketik kode berikut −
Live Demo
x = int32([5.32 3.47 6.28]) .* 7.5 x = int64([5.32 3.47 6.28]) .* 7.5 x = num2cell(x)
Ketika Anda menjalankan file, itu menunjukkan hasil berikut −
x = 38 23 45 x = 38 23 45 x = { [1,1] = 38 [1,2] = 23 [1,3] = 45 } Integer Terkecil dan Terbesar
Fungsi intmax() dan intmin() mengembalikan nilai maksimum dan minimum yang dapat direpresentasikan dengan semua jenis bilangan integer.
Kedua fungsi mengambil tipe data integer sebagai argumen, misalnya, intmax(int8) atau intmin(int64) dan mengembalikan nilai maksimum dan minimum yang dapat Anda representasikan dengan tipe data integer.
Contoh
Contoh berikut mengilustrasikan cara mendapatkan nilai terkecil dan terbesar bilangan integer. Buat file skrip dan tulis kode berikut di dalamnya −
Live Demo
% 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')) Ketika Anda menjalankan file, itu menunjukkan hasil 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
Bilangan Floating Point Terkecil dan Terbesar
Fungsi realmax() dan realmin() mengembalikan nilai maksimum dan minimum yang dapat direpresentasikan dengan bilangan floating point.
Kedua fungsi ketika dipanggil dengan argumen 'single', mengembalikan nilai maksimum dan minimum yang dapat Anda representasikan dengan tipe data presisi tunggal dan ketika dipanggil dengan argumen 'double', mengembalikan nilai maksimum dan minimum yang dapat Anda representasikan dengan 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 −
Live Demo
% 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')) Ketika Anda menjalankan file, itu 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