134 字
1 分钟
Matlab 常用读写命令
2022-11-11

Matlab 常用读写命令#

%% read the 2-binary data
function data=read_bin_file(filename, num)
fp = fopen(filename,'rb');
data = fread(fp,num,"float");
fclose(fp);
end
%% Ricker wavelet
function [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 .rsf
clear;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
Matlab 常用读写命令
https://tuoyuangui.github.io/website/posts/typora/matlab/常用读写命令/
作者
椭圆规/tuoyuangui
发布于
2022-11-11
许可协议
CC BY-NC-SA 4.0