【问题标题】:Error using ./ Matrix dimensions must agree使用错误。/矩阵尺寸必须一致
【发布时间】:2012-11-21 11:42:32
【问题描述】:

我正在尝试使用 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)')

【问题讨论】:

  • 你有 2 个向量,一个有 1001 个元素,另一个有 334 个元素。你建议这两个的元素划分应该如何工作?

标签: matlab


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您使用的三个向量 xtL 必须具有相同数量的元素。您可以通过更改正在使用的步长来手动解决此问题,即

    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 个点。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我该如何解决这个问题?请多多包涵,我还是个初学者
      猜你喜欢
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      • 2012-07-12
      • 2011-12-05
      • 1970-01-01
      相关资源
      最近更新 更多