MATLAB中向量运算的奇怪行为

时间:2014-09-29 10:35:27

标签: matlab vector plot operations

我有一个公式

F = (-k.^(3/2) .* sqrt(4 .* c .* x + k) + 2 .* x .* k .* c + k.^2) / (2 .* c)

并且我试图将f映射到c的一系列值,对于常数x和k值,如下所示:

x = 0.01;
c = 10000:10000:100000;
k = 100000;
F = (-k.^(3/2) .* sqrt(4 .* c .* x + k) + 2 .* x .* k .* c + k.^2) / (2 .* c)

此时我假设matlab会给我一个与c大小相同的矢量,但它只是打印出来:

F =

   47.1563

对于常数c和x的k值范围绘制F可以正常工作,但上面没有。

有人可以帮我解释一下吗?

1 个答案:

答案 0 :(得分:6)

使用元素分区./,类似于.*

F = (-k.^(3/2) .* sqrt(4 .* c .* x + k) + 2 .* x .* k .* c + k.^2) ./ (2 .* c)

/用于右矩阵除法:A/B相当于mrdivide(A,B),它解决x*B = A的(线性)方程x系统} {而./只是元素明智的划分。