我想在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.
我不明白问题出在哪里......
答案 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一样。这将为您提供问题可能出现的最佳指标。
在这种特殊情况下,由于我所说的上面的乘法和除法,你会得到矩阵尺寸不匹配误差。
希望有所帮助。