-2

私はMatlabでこの関数をプロットしたい:

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

この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.

問題がどこにあるのかわかりません...

4

2 に答える 2

1

明らかに が多すぎるか多(すぎ)ます。それらを数え、Matlab エディターの構文の強調表示を使用して、正確な場所を見つけるのに役立ちます。

于 2012-08-14T12:39:44.847 に答える
0

ここでいくつかの問題があります。(1 つ目は、使用しているとの数です)。2 つ目は、行列演算はベクトルの長さが一致しない場合を言うほど単純ではないため、ベクトルであり、演算子pが必要であるという事実を考慮していないことです。.*./A times B

いずれにせよ、これは今あなたのために働くはずです...

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

将来的には、 @ rubenvb が言及したの(と同様の数を単純に数えるだけで役立ちます。)これにより、問題がどこにあるのかを示す優れた指標が得られます。

この特定のケースでは、上記の乗算と除算について述べたことにより、行列の次元の不一致エラーが発生した可能性があります。

それが役立つことを願っています。

于 2012-08-14T13:21:49.193 に答える