3

我正在尝试使用 t,x,l 变量绘制此代码...

我收到此错误“使用错误。/矩阵尺寸必须一致。

Uentitled5 中的错误(第 16 行)a=cos(Lambda1.*(x./L));"

t=1:0.5:300;
x=0:0.1:100;
L=0:0.3:100;
Bi=0.01;
A1=1.0017
Lambda1=0.0998
a=cos(Lambda1.*(x./L));
theta=(A1.*exp(-(Lambda1.^2).*t).*a);
for i=t
    plot(t,theta,'-') 
    for j=x
        plot (x,theta,'-','green')
    end
    for k=L
        plot (L,theta,'-','red')
    end
end
title('Dimensionless Temperature for Plane Wall  ')
xlim([0 2])
ylim([0 350])
xlabel('\Theta(0)')
ylabel('t(Time in Seconds)')
4

3 回答 3

4

您正在使用的三个向量xt、 和L必须具有相同数量的元素。您可以通过更改您正在使用的步长手动修复此问题,即

x = 0:0.1:100;
L = 0:0.1:100;
t = 0:0.3:300;

定义明确定义元素数量的向量的另一种方法是“linspace”。您可能会使用:

x = linspace(0, 100, 1001);
L = linspace(0, 100, 1001);
t = linspace(0, 300, 1001);

这将为指定范围内的每个向量提供 1001 个点。

于 2012-12-04T00:59:30.620 回答
0

x 以 0.1 的增量
存储 0 到 100 L 以 0.3 的增量存储 0 到 100
因此,如果 x 具有元素 x = {x1 x2 x3} 和 L = {L1,则 L 中的元素数小于 x 中的元素数L2 L3},那么 x./L 应该给出
ans = {x1/L1 x2/L2 x3/L3}。如果分子和分母数组中的元素个数不相同,那么matlab会报错

于 2012-12-04T06:47:36.573 回答
0

是的,那是因为 L 是 1x334 而 x 是 1x1001。要按元素划分元素,它们需要具有相同数量的元素。

于 2012-12-03T22:37:58.643 回答