Posting kali ini masih berhubungan dengan posting saya sebelumnya. Cuma pada bagian ini saya akan memperlihatkan bagaimana hubungan antara ukuran array dengan lama eksekusi dengan metode indeks. Ternyata hasil yang diperoleh meunjukkan bahwa dengan menggunakan looping di MATLAB, waktu eksekusi yang diberikan bertambah secara signifikan dan cenderung eksponensial. Sementara dengan bantuan indeks, waktu eksekusi datar-datar saja. Adapun codenya bisa dilihat pada listing berikut
function indeks1 clear all ; clc; step = 100:50:700; cara1 = zeros(length(step),1); cara2 = zeros(length(step),1); for ii=1:numel(step) % first way, iterate trough looping dim = step(ii); Y = zeros(dim,dim) ; tic ; for i=1:length(Y), for j=1:length(Y(1,:)), if mod(i+j, 2) == 0 Y(i,j) = 2; else Y(i,j) = 1; end end end cara1(ii) = toc; % second way, using MATLAB index X = zeros(dim,dim) ; tic; [a,b] = ind2sub(size(X), 1:numel(X)) ; X((mod(a+b, 2) ==0)) = 2; X((mod(a+b, 2) > 0)) = 1; cara2(ii) = toc; end plot(step, cara1, 'r.-', step, cara2, 'g.-' ) disp('Is the first get the same output with the second?') indeks = find(Y(:,:) ~= X(:,:)); xlabel('ukuran array'); ylabel('lama eksekusi dalam detik'); if(numel(indeks) == 0), disp('oh... yes.. '); endDi mana saya sudah melakukan perubahan time step dalam rentang yang berbeda-beda. Pada hasilnya juga diperlihatkan bahwa penggunaan indeks ini sangat terasa ketika ukuran array semakin besar.
Anda bisa mengetes sendiri untuk selang waktu yang lain. Tentunya MATLAB membatasi kita dalam mengalokasikan array, mengingat kapasitas memori yang terbatas. Untuk mengetahui kapasitas memori di komputer anda, matlab menyediakan perintah
memory
yang bisa digunakan untuk memperkirakan kapasitas array yang bisa anda alokasikan.
No comments:
Post a Comment