Mengekspor Data dari MATLAB: Format File & Teknik
Ekspor data (atau keluaran) dalam MATLAB berarti menulis ke file. MATLAB memungkinkan Anda untuk menggunakan data Anda dalam aplikasi lain yang membaca file ASCII. Untuk ini, MATLAB menyediakan beberapa opsi ekspor data.
Anda dapat membuat jenis file berikut −
File data ASCII yang dipisahkan delimiter dan persegi panjang dari array.
File diary (atau log) dari klik tombol dan keluaran teks yang dihasilkan.
File ASCII khusus menggunakan fungsi tingkat rendah seperti fprintf.
MEX-file untuk mengakses rutinitas C/C++ atau Fortran Anda yang menulis ke format file teks tertentu.
Di luar ini, Anda juga dapat mengekspor data ke spreadsheet.
Ada dua cara untuk mengekspor array numerik sebagai file data ASCII yang dipisahkan delimiter −
Sintaks untuk menggunakan fungsi save adalah −
save my_data.out num_array -ascii
di mana, my_data.out adalah file data ASCII yang dipisahkan delimiter yang dibuat, num_array adalah array numerik dan -ascii adalah specifier.
Sintaks untuk menggunakan fungsi dlmwrite adalah −
dlmwrite('my_data.out', num_array, 'dlm_char') di mana, my_data.out adalah file data ASCII yang dipisahkan delimiter yang dibuat, num_array adalah array numerik dan dlm_char adalah karakter delimiter.
Contoh
Contoh berikut mendemonstrasikan konsep tersebut. Buat file skrip dan ketik kode berikut −
Live Demo
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 Ketika Anda menjalankan file, itu 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
Perhatikan bahwa perintah save -ascii dan fungsi dlmwrite tidak berfungsi dengan cell array sebagai input. Untuk membuat file ASCII yang dipisahkan delimiter dari isi cell array, Anda dapat
Jika Anda menggunakan fungsi save untuk menulis array karakter ke file ASCII, ia menulis setara ASCII dari karakter ke file.
Sebagai contoh, mari kita tulis kata 'hello' ke file −
Live Demo
h = 'hello'; save textdata.out h -ascii type textdata.out
MATLAB mengeksekusi pernyataan di atas dan menampilkan hasil 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 diary adalah log aktivitas sesi MATLAB Anda. Fungsi diary membuat salinan tepat dari sesi Anda dalam file disk, tanpa grafik.
Untuk menyalakan fungsi diary, ketik −
diary
Secara opsional, Anda dapat memberi nama file log, misalnya −
diary logdata.out
Untuk mematikan fungsi diary −
diary off
Anda dapat membuka file diary di editor teks.
Mengekspor Data ke File Data Teks dengan I/O Tingkat Rendah
Sampai sekarang, kami telah mengekspor array numerik. Namun, Anda mungkin perlu membuat file teks lain, termasuk kombinasi data numerik dan karakter, file output yang tidak persegi panjang, atau file dengan skema pengkodean non-ASCII. Untuk tujuan ini, MATLAB menyediakan fungsi tingkat rendah fprintf.
Seperti dalam aktivitas I/O file tingkat rendah, sebelum mengekspor, Anda perlu membuka atau membuat file dengan fungsi fopen dan mendapatkan pengidentifikasi file. Secara default, fopen membuka file untuk akses hanya baca. Anda harus menentukan izin untuk menulis atau menambahkan, seperti 'w' atau 'a'.
Setelah memproses file, Anda perlu menutupnya dengan fungsi fclose(fid).
Contoh berikut mendemonstrasikan konsep tersebut −
Contoh
Buat file skrip dan ketik kode berikut di dalamnya −
Live Demo
% 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 Ketika Anda menjalankan file, itu 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