作业帮 > 综合 > 作业

我在用matlab编写一地震波数值模拟程序,运行时总显示有错,求高手指教.程序如下

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 18:40:29
我在用matlab编写一地震波数值模拟程序,运行时总显示有错,求高手指教.程序如下
clear;
%parameter form 参数表
V=2563.5; %velocity
dt=0.002; %steptime 时间步长
time=0.5; %snaptime 快照时间
f=30; %wavelet frequency 子波频率
wavelet=0.05; %wavelet length 子波长度
dx=20; %x方向步长
dz=20; %z方向步长
a=100;b=100; %source position
line=200;row=200;
p=zeros(line+1,row+1);
pp=zeros(line+1,row+1);
ppb=zeros(line+1,row+1);
fic=fopen('dizhen.dat','rb');
[v]=fread(fic,750*685,'float32');
k=1;
for i=1:685
for j=1:750
V(i,j)=v(k);
k=k+1;
end
end
%computate the wavelet
for t=0:dt:time
% t=0:0.001:0.05
if(t
问题出现V上面.
在第3行,程序明确V是一个数值而已
但是第19行到第24行,程序已经把V改变成为一个矩阵,行为685,列为750
这样直接导致第39行中(V*dt/dx).^2*(pp(x+1,z)+pp(x-1,z)-2*pp(x,z))该项的结果也是这样一个685*750的矩阵
这样的矩阵是不能直接赋值给第39行的左边的数值p(x,z)的.