matlab中的绘图错误不平衡或意外的括号或括号

时间:2012-08-14 12:33:45

标签: matlab parentheses

我想在Matlab中绘制这个函数:

F(p)=((3/2)*(7.02^2))-(2*18*p((1-(p/18))*(1-(exp(-18/p))))

我尝试按照this Mathworks页面中的说明制作绘图。我写了这个:

p=0.001:0.001:10;
F=(((3/2)*(7.02^2))-(2*18*p((1-(p/18))*(1-(exp(-18/p)))));
plot(p,y)

但是我收到了一个错误:

??? F=(((3/2)*(7.02^2))-(2*18*p((1-(p/18))*(1-(exp(-18/p)))));
                                                            |
Error: Unbalanced or unexpected parenthesis or bracket.

我也尝试过这样的循环:

p=0.01:0.01:10;
F=zeros(1,length(p))
for i = 1:1000
F(i)=(((3/2)*(7.02^2))-(2*18*p(i)((1-(p(i)/18))*(1-(exp(-18/p(i))))));
end
plot(p,y)

但我得到了错误:

??? F=(((3/2)*(7.02^2))-(2*18*p((1-(p/18))*(1-(exp(-18/p)))));
                                                            |
Error: Unbalanced or unexpected parenthesis or bracket.

??? Error: File: Untitled2.m Line: 4 Column: 70
Unbalanced or unexpected parenthesis or bracket.

我不明白问题出在哪里......

2 个答案:

答案 0 :(得分:1)

您显然有太多(或太多)。计算它们,并使用Matlab编辑器的语法突出显示并帮助找到确切的位置。

答案 1 :(得分:0)

这里有一些问题。第一个是您正在使用的()的数量。第二个问题是,你没有考虑p是一个向量并且需要.*./运算符这一事实,因为矩阵运算并不总是像{{1}那样简单当矢量长度不匹配时。

无论哪种方式,这应该适合你...

A times B

将来,只需简单地计算{@ 1}}和F=(((3/2)*(7.02^2))-(2*18*p.*(1-(p./18))).*(1-(exp(-18./p))));的数量,就像提到的@rubenvb一样。这将为您提供问题可能出现的最佳指标。

在这种特殊情况下,由于我所说的上面的乘法和除法,你会得到矩阵尺寸不匹配误差。

希望有所帮助。