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;
答案 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
,但你从来没有真正使用它的值;只有它的长度用于设置迭代的上限。最重要的是,由于外部范围变量永远不会改变,因此每次迭代都会生成相同的A
和V
值。您可以删除迭代,但仍然可以通过单次计算获得相同的结果,因为内部代码已经在x
上进行了矢量化。