使用/时出错矩阵维度必须一致

时间:2018-02-03 01:15:21

标签: matlab

A1 = 0.85;%in^2
L = 2.0; %in
x = -2:0.5:2; %in
V1 = 300; %ft/s

for i=1 : length(x)
A = A1*cosh(x/L);
V = (V1 * A1) / A;
end

我知道这是愚蠢的,但这给了我这个错误,我无法弄清楚为什么

Error using  / 
Matrix dimensions must agree.
Error in Lab2 (line 11)
V = (V1 * A1) / A;

1 个答案:

答案 0 :(得分:3)

问题是你在标量(V1 * A1的结果)和向量(A)之间执行非元素划分。这应该可以解决您的问题(有关更多信息,请参阅官方文档的this page):

for i = 1:length(x)
    A = A1 * cosh(x / L);
    V = (V1 * A1) ./ A;
end

在旁注中,我不清楚您在for loop中尝试做什么。你创建了一个向量x,但你从来没有真正使用它的值;只有它的长度用于设置迭代的上限。最重要的是,由于外部范围变量永远不会改变,因此每次迭代都会生成相同的AV值。您可以删除迭代,但仍然可以通过单次计算获得相同的结果,因为内部代码已经在x上进行了矢量化。