134 字
1 分钟
Matlab 常用读写命令
Matlab 常用读写命令
%% read the 2-binary datafunction data=read_bin_file(filename, num) fp = fopen(filename,'rb'); data = fread(fp,num,"float"); fclose(fp);end
%% Ricker waveletfunction [wave]=ricker(fm, t, st,amp) wave = amp.*(1-2.*(pi.*fm.*(t-st)).^2).*exp(-(pi.*fm.*(t-st)).^2);end
function [winer]= wiener(wave1f, wave2f) amp = real(wave2f).*real(wave2f)+imag(wave2f).*imag(wave2f);% amp = amp+ max(amp)*0.01; winerreal = real(wave1f).*real(wave2f)+imag(wave1f).*imag(wave2f); winerimag = imag(wave1f).*real(wave2f)-real(wave1f).*imag(wave2f); winerimag = winerimag./amp; winerreal = winerreal./amp; winer = winerreal + 1i*winerimag;end
%% convert the .mat to .rsfclear;clc;maindir = uigetdir("choose a folder!");matfiles = dir(fullfile(maindir));LengthFiles = length(matfiles);
for i=3:LengthFiles % note : change with the depth of folder name=matfiles(i).name; folder=matfiles(i).folder; data = importdata([folder,'/',name]); data(data==data(1,1)) = 1500.0; rsfname = [folder,'/rsf/']; rsfnamedata = [rsfname,'/data/']; mkdir(rsfname); mkdir(rsfnamedata); fp = fopen([rsfnamedata,name(1:end-4),'.rsf@'],"wb"); fwrite(fp,data,"float"); fclose(fp); strings = ['n1=201 n2=301 d1=10 d2=10 o1=0 o2=0 data_format=native_float in=./data/',name(1:end-4),'.rsf@']; % change with the paramaters fp2 = fopen([rsfname,name(1:end-4),'.rsf'],"w"); fprintf(fp2,strings); fclose(fp2);end