您的位置首页生活百科

matlab中错误原因串联矩阵的纬度不一样怎么解决?

matlab中错误原因串联矩阵的纬度不一样怎么解决?

的有关信息介绍如下:

因为 R(A)=3

所以 AX=0 的基础解系含 n-r(A) = 4-3=1 个向量

而  3a3 - (a2+2a3) = (5, -9, 7, -9)^T 是 AX=0 的解, 故是基础解系

所以全部解为 (2,0,5,-1)^T + c(5, -9, 7, -9)^T

A=load('C:\Users\Administrator\Desktop\b.TXT');

dep=A(83:1082,1);

rho=A(83:1082,5);

pro=A(83:1082,7);

SH=A(83:1082,12);

VP=A(83:1082,13);

matlab中错误原因串联矩阵的纬度不一样怎么解决?

VS=A(83:1082,14);

pclay=1.58;

pquartz=2.65;

pw=1;

kf1=2.2;

sw=1;

p0=0.9;

matlab中错误原因串联矩阵的纬度不一样怎么解决?

for delta=-2:0.01:1;

Vpw=(1+delta)*VP(:,1);

Vswq=0.80416*Vpw(:,1)-0.85880;

Vswclay=0.76969*Vpw(:,1)-0.86735;

Vsw1=SH(:,1).*Vswclay(:,1)+(1-SH(:,1)).*Vswq(:,1);

Vsw2=SH(:,1)/Vswclay(:,1)+(1-SH(:,1))/Vswq(:,1);

matlab中错误原因串联矩阵的纬度不一样怎么解决?

pma=SH(:,1)*pclay+(1-SH(:,1))*pquartz;

pbw=pma.*(1-pro(:,1))+pw.*pro(:,1);

u1=pbw.*(Vsw1).^2;

ksw1=(pbw.*(Vpw).^2)-((4/3)*u1);

khs1=1/(pro(:,1)/2.2+(1-pro(:,1)).*(1-SH(:,1))/36+(1-pro(:,1)).*SH(:,1));

khs2=1/(pro(:,1)/(2.2+4/3*45)+(1-pro(:,1)).*(1-SH(:,1))/(36+4/3*45)+(1-

pro(:,1)).*SH(:,1)/(1.5+4/3*45))-4/3*45;

k1=(khs1+khs2)/2;

k0=pinv(k1);

matlab中错误原因串联矩阵的纬度不一样怎么解决?

kd1=ksw1-k0.*(1-(ksw1./k0)).^2./((pro(:,1).*k0./kf1)+(ksw1./k0)-1-pro(:,1));

kf=sqrt(pro(:,1)./2.2+(1-pro(:,1))./36);

ks1=kd1+k0.*(1-kd1./k0).^2/(pro(:,1).*k0./kf-kd1./k0+1-pro(:,1));

%kf=sqrt(pro(:,1)./2.2+(1-pro(:,1))./36);

pb=rho(:,1);

%pb=pma*(1-pro(:,1))+(1-sw)*pro(:,1)*p0+sw*pro(:,1)*pw;

vp1=sqrt((ks1+(4/3)*u1)/pb);

vs=sqrt(u/pb);

matlab中错误原因串联矩阵的纬度不一样怎么解决?

if(VP(:,1)-vp1(:,1)<0.1)

u=u1; 

save('C:\Users\Adminstrator\Desktop\vs.TXT','vs');

end

end

两个大小不同的矩阵是不能相加的

要实现对应位置相加,需要将纬度较小的扩展为纬度较大的矩阵

没有数据的位置填上零,形成两个大小相同的矩阵,然后再相加

A,B的大小并不确定,那么还需要先根据A,B的大小比较来确定如何扩展矩阵

m=max(size(A,1),size(B,1));%确定最大行数

n=max(size(A,2),size(B,2));%确定最大列数

AA=zeros(m,n);

BB=zeros(m,n);

AA(1:size(A,1),1:size(A,2))=A; %扩展A

BB(1:size(B,1),1:size(B,2))=B;  %扩展B

C=AA+BB; %求和