Pemrograman matriks kali ini belajar mengenai cara membuat 3D grid cube dengan MATLAB. Sistem 3D cube ini dalam geofisika bermanfaat untuk membuat model tomografi 3 dimensi. Bila dalam tomografi 2 dimensi setiap blok dinyatakan sebagai luasan, maka dalam tomografi 3 dimensi setiap blok kecil dinyatakan sebagai suatu volume. Dalam membuat pemodelan setiap blok diberi nilai properties tertentu misal slowness (kebalikan dari kecepatan, 1/v), rock quality (selaras dengan kebalikan atenuasi, 1/a), atau sifat-sifat fisis lainnya.
Sebelum melangkah lebih jauh mengisi nilai-nilai property dari setiap cube dan melakukan inversi, ada baiknya belajar cara membuat cube terlebih dahulu. Kali ini dengan menggunakan program MATLAB (R2010a). Berikut ini syntax dan penjelasan pemrogramannya:
clear all; clc; % Data diskrit dari -4 s.d 4 dengan step 1 untuk koordinat X,Y,Z x = -4:1:4; y = -4:1:4; z = -4:1:4; % pengaturan komponen X [X1 Y1 Z1] = meshgrid(x([1 end]),y,z); % mengatur dimensi X, Y, Z vektor X1 = permute(X1,[2 1 3]); Y1 = permute(Y1,[2 1 3]); Z1 = permute(Z1,[2 1 3]); % mengosongkan nilai X1(end+1,:,:) = NaN; Y1(end+1,:,:) = NaN; Z1(end+1,:,:) = NaN; % pengaturan komponen Y [X2 Y2 Z2] = meshgrid(x,y([1 end]),z); % mengosongkan nilai X2(end+1,:,:) = NaN; Y2(end+1,:,:) = NaN; Z2(end+1,:,:) = NaN; % pengaturan komponen Z [X3 Y3 Z3] = meshgrid(x,y,z([1 end])); % mengatur dimensi X, Y, Z vektor X3 = permute(X3,[3 1 2]); Y3 = permute(Y3,[3 1 2]); Z3 = permute(Z3,[3 1 2]); % mengosongkan nilai X3(end+1,:,:) = NaN; Y3(end+1,:,:) = NaN; Z3(end+1,:,:) = NaN; % membuat garis yang menghubungkan antar sesama komponen vektor h = line([X1(:);X2(:);X3(:)], [Y1(:);Y2(:);Y3(:)], [Z1(:);Z2(:);Z3(:)]); % membuat gambar prespektif set(h, 'Color',[0.5 0.5 1], 'LineWidth',1, 'LineStyle','-') axis off view(3), axis vis3d camproj perspective, rotate3d on