如何确定矩阵尺寸必须一致

时间:2019-06-26 15:15:17

标签: matlab matrix plot

我正在尝试根据t绘制Z0 我得到这个错误矩阵尺寸必须一致。 我知道'T'是一个标量,'X'和'Y'是(51x26)矩阵,并且't'是(1x501)向量,由于它们不符合矩阵,因此无法相乘乘法 我需要一个解决方案,请问我是不是MATLAB新手

sigma0=0;
el= 0.5;
L= 1 ;
h= 0.5 ;
a= 1;
N= 3;
g=10;
rho=1000;
Z0=0;
t=0:0.01:5;
x=0:0.02:el;
y=0:0.02:L;
[X,Y]=mesh grid (x,y);
sigma=0;
T=3*pi/4;
for n=0:N
    for m=0:N
        A=pi*((m/el)^(2)+(n/L)^(2))^(0.5);
        B=(g*A+(sigma/rho)*A^3)*atan(A*h);
        C=B^(0.5); 
        Z=a*cos(C.*T).*cos((m*pi/el).*X).*cos((n*pi/L).*Y);
        Zs=Z0+Z;
        Z0=Zs;

    end
end
  m=3;
  n=4;

A=pi*((m/el)^(2)+(n/L)^(2))^(0.5);
B0=(g*A+(sigma0./rho)*A^3)*atan(A*h);
C0=(B0.^(0.5)); 
Z0=(a.*cos(C0.*T)).*cos((m*pi/el).*X).*(cos((n*pi/L).*Y));
figure
subplot(221)
plot(t,length(Z0));
xlabel(' temps s');
ylabel(' élévation z(x,y)y');
title(' sans tension superficielle');
legend('sigma0') 

我希望看到一个正弦图形的结果

1 个答案:

答案 0 :(得分:0)

我认为您只需将plot(t,length(Z0));替换为plot(1:length(Z0), Z0);

我没有收到错误消息,也看不到您尝试通过t进行倍增的地方。
执行clear all以防万一...

除此以外,您发布的语法错误[X,Y]=mesh grid (x,y);应该为[X,Y]=meshgrid (x,y);

替换plot(t,length(Z0));
使用:plot(1:length(Z0), Z0);

结果是:

Subplot