wusemm 发表于 2009-5-28 13:20

请教一个矩阵问题 奇怪

f=linspace(0,8000,100); w=2.*pi.*f;    %define the frequency and the angular frequency
c0=340; p=2700;                               %define the sound speed in air and the density of steel plate
h=0.0025; theta=linspace(0,pi/2,100);            
k0=w./c0; kx=k0.*sin(theta); ky=k0.*cos(theta);                                 
S=;
C=inv(S);

D1=;
D2=;
D3=;

%Define the zero matrix and I
A11=zeros(3); A12=eye(3); A=zeros(6,6,100);

%calulate matrix A
B2=D3*C*(D3'); IVB2=inv(B2);
   for j = 1:length(w)
      B1(:,:,j)= (i*kx(j)*D1*C*D3')+(i*kx(j)*D3*C*D1')+(i*ky(j)*D2*C*D3')+(i*ky(j)*D3*C*D2');
      B0(:,:,j)=(i*kx(j)*i*kx(j)*D1*C*D1')+(i*ky(j)*i*ky(j)*D2*C*D2')+(i*kx(j)*i*ky(j)*D1*C*D2')+(i*ky(j)*i*kx(j)*D2*C*D1');
      A21(:,:,j)=-p*w(j)*w(j)*IVB2-IVB2*B0(:,:,j);
      A22(:,:,j)=-IVB2*B0(:,:,j);
      A=
   end
矩阵A 结构是一个6*6的矩阵,共有100个该矩阵,
A11 A12;A21 A22都是3x3的子矩阵,各为A的分块矩阵
我需要用A11 A12 ;A21 A22 放入A的各自位置,构成A矩阵
如上语句就是做不出来,不能成功得到全部A的全部元素!
请高手帮我看看,哪里有问题!急啊

[ 本帖最后由 ChaChing 于 2009-5-30 20:31 编辑 ]

friendchj 发表于 2009-5-28 14:37

可以正确运行,不知你说的问题是什么,部分运行结果:
A =

   0   0   0   1   0   0
   0   0   0   0   1   0
   0   0   0   0   0   1
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0


A =

1.0e+010 *

         0         0         0    0.0000         0         0
         0         0         0         0    0.0000         0
         0         0         0         0         0    0.0000
   -1.8584    0.0000         0    0.0000    0.0000         0
    0.0000   -1.8584         0    0.0000    0.0000         0
         0         0   -0.0002         0         0    0.0000
……

wusemm 发表于 2009-5-28 16:09

我的问题

请楼主看运行出来的最终矩阵当中 右部分
A(1:3,4:6),显示的是零元素阿,该子阵应该是一个单位阵才对啊?

A(4:6,4:6)应该附上A22子阵的内容,也显示的是零阿?


该阵实际上只把 A11 和A13部分体现出来了,为什么呢?

friendchj 发表于 2009-5-28 18:18

建议楼主设断点,看看此时的A21,A22的值,我的运行结果:
K>> A21

A21 =

   0   0   0
   0   0   0
   0   0   0

K>> A22

A22 =

   0   0   0
   0   0   0
   0   0   0
页: [1]
查看完整版本: 请教一个矩阵问题 奇怪