Anda di halaman 1dari 11

Basic

2012

HOW TO READ TEXT FROM NOTEPAD BY MATLAB

Matlab dilengkapi dengan kemampuan untuk mengakses item-item yang tersimpan dalam dokumen hasil perangkat lunak pengolah kata seperti MsWord, Notepad dan sejenisnya. Matlab juga bias melakukan hal yang sama untuk perangkat lunak seperti Excel dan lain-lain. Kemampuannya ini bisa dimanfaatkan ketika data yang kita miliki ternyata tersimpan dalam format file lain, bukan *.mat yang biasa kita kenal dihasilkan oleh Matlab. Sebelum mengetahui tentang membaca file dari txt, terlebih dahulu diperkenalkan cara menuliskan data ke txt. Berikut ini contoh beserta langkah-langkahnya dalam bentuk komentar pada program. Contoh:
clear all; close all; clc; % 1. buat nama file filename='tulisteks.txt'; % buat objek fid fid=fopen(filename,'w+'); % 2. siapkan data % contoh: generate nilai sinus untuk 0-2*pi t=0:1/1:2*pi; y=sin(t); data=[t' y']; % 3. tuliskan data ke txt % gunakan while agar data dapat disimpan terstruktur % dan bila di view menggunakan notepad, memang tidak % terstruktur, tapi matlab mengingat bahwa itu sudah % terstruktur. ct=1; while ct<=length(t) % gunakan fungsi FPRINTF fprintf(fid,'%f %f \n',data(ct,:)); ct=ct+1; end % 4. tutup objek fid fclose(fid);

[janshendry@gmail.com] |email

Basic

2012

untuk melihat format data yang telah disimpan dalam tulisteks.txt, anda bisa mengetik TYPE FILENAME di MATLAB COMMAND WINDOW. Ini hasilnya:

Bila kita ingin menulis data yang berbeda ke file yang sama sehingga data yang baru akan di append ke data yang lama, dapat dilakukan dengan cara ini Ada beberapa cara untuk membaca txt. 1. Dengan menggunakan fungsi load contoh di bawah ini untuk kasus membaca data dari tulisteks.txt yang dihasilkan dari program di atas.
clear all; close all; clc; % 1. gunakan LOAD untuk membuka file txt filename='tulisteks.txt'; data=load(filename); % 2. alokasikan variabel baru untuk temporal atau bisa % saja anda tidak perlu melakukannya t=data(:,1); y=data(:,2); % 3. ini hanyalah proses untuk plot data plot(t,y,'r'); title('Sine Wave'); xlabel('t'); ylabel('y'); grid on;

[janshendry@gmail.com] |email

Basic

2012

hasil eksekusi dari program di atas

2. Dengan menggunakan fungsi fopen dan fscanf yang dikhususkan memang untuk membaca text.

Contoh berikut ini juga untuk kasus yang sama dengan point 1.
clear all; close all; clc; % 1. siapkan objek fid dan gunakan fopen untuk % membuka file filename='tulisteks.txt'; fid=fopen(filename); % 2. membaca isi dari text dengan fscanf data=fscanf(fid,'%f %f',[2 inf]); % 3. menutup objek fid (penting dilakukan) fclose(fid);

[janshendry@gmail.com] |email

Basic % memindahkan isi dari variabel data agar bagus data=data'; t=data(:,1); y=data(:,2); % hanya plot data plot(t,y,'r'); title('Sine Wave'); xlabel('t'); ylabel('y'); grid on;

2012

hasil eksekusi dengan program di atas

3. Dengan menggunakan fungsi yang sebenarnya diperuntukkan untuk file binary, yakni fungsi fgetl. Dengan melakukan sedikit konversi dari char ke numeric maka kita bisa memanfaatkan fungsi ini.

Contoh berikut ini juga sama dengan kasus point 1.

[janshendry@gmail.com] |email

Basic clear all; close all; clc;

2012

% 1. siapkan objek fid filename='tulisteks.txt'; fid=fopen(filename); % membaca menggunakan fgetl untuk deteksi newline cline=fgetl(fid); ct=1; while ischar(cline) data(ct,:)=str2num(cline); cline=fgetl(fid); ct=ct+1; end % tutup fid fclose(fid); % membuat variabel t=data(:,1); y=data(:,2); % hanya plot data plot(t,y,'r'); title('Sine Wave'); xlabel('t'); ylabel('y'); grid on;

hasil eksekusi menggunakan program di atas

[janshendry@gmail.com] |email

Basic

2012

4. Dengan menggunakan fungsi fgets yang juga diperuntukkan untuk binary file, tapi dia menambahkan newline. Perlakuan sama persis dengan fgetl.

Contoh yang sama dengan kasus point 1.

clear all; close all; clc;

% 1. siapkan objek fid filename='tulisteks.txt'; fid=fopen(filename); % membaca menggunakan fgetl untuk deteksi newline cline=fgets(fid); ct=1; while ischar(cline) data(ct,:)=str2num(cline); cline=fgets(fid); ct=ct+1; end

[janshendry@gmail.com] |email

Basic

2012

% tutup fid fclose(fid); % membuat variabel t=data(:,1); y=data(:,2); % hanya plot data plot(t,y,'r'); title('Sine Wave'); xlabel('t'); ylabel('y'); grid on;

hasil eksekusi dari program di atas

5. Dengan menggunakan fungsi kombinasi antara sscanf dan fgetl. Sehingga kita tidak perlu melakukan konversi char ke numeric.

Contoh ini juga sama dengan point 1.

[janshendry@gmail.com] |email

Basic clear all; close all; clc; % 1. siapkan objek fid filename='tulisteks.txt'; fid=fopen(filename); % membaca menggunakan fgetl untuk deteksi newline cline=fgetl(fid); ct=1; while ischar(cline) data(ct,:)=sscanf(cline,'%f %f'); cline=fgetl(fid); ct=ct+1; end % tutup fid fclose(fid); % menyiapkan variabel t=data(:,1); y=data(:,2); % hanya plot data plot(t,y,'g'); title('Sine Wave'); xlabel('t'); ylabel('y'); grid on;

2012

hasil eksekusi dari program di atas

[janshendry@gmail.com] |email

Basic

2012

6. Dengan menggunakan textscan. Hasil dari pembacaan akan disimpan dalam struct sehingga perlu diubah ke dalam variable biasa terlebih dahulu agar mudah dalam akses.

Contoh berikut ini sama dengan kasus 1.


clear all; close all; clc;

% 1. siapkan objek fid filename='tulisteks.txt'; fid=fopen(filename); % 2. membaca menggunakan textscan dengan kolom 2 data=textscan(fid,'%f %f',[2 inf]); % tutup fid fclose(fid); % membuat variabel t=data{1}; y=data{2}; % hanya plot data plot(t,y,'m'); title('Sine Wave'); xlabel('t'); ylabel('y'); grid on;

hasil eksekusi program di atas

[janshendry@gmail.com] |email

Basic

2012

Tampaknya sudah cukup banyak cara yang telah diuraikan di atas untuk membantu dalam akses data dari text. Sekarang jika kita ingin membuka data untuk append data baru, bisa digunakan code berikut:
clear all; close all; clc; % 1. nama file yang akan dibuka filename='tulisteks.txt'; % a+ artinya append data baru terhadap file fid=fopen(filename,'a+'); % 2. siapkan data baru v1=1:10; v2=2*v1; v=[v1' v2']; % 3. tuliskan data baru ke dalam file yang sudah ada ct=1; while ct<=length(v1) % gunakan fungsi FPRINTF fprintf(fid,'%f %f \n',v(ct,:)); ct=ct+1;

[janshendry@gmail.com] |email

Basic end % 4. tutup fid fclose(fid);

2012

hasilnya adalah

Tampak bahwa data baru telah di append ke data yang lama. Demikianlah artikel ini ditulis semoga bisa memberikan sedikit bantuan untuk anda.

@ thanks

[janshendry@gmail.com] |email

Anda mungkin juga menyukai