How we can calculate using MATLAB for small values?

1 回表示 (過去 30 日間)
Shafiq Roslan
Shafiq Roslan 2012 年 11 月 21 日
R = 1000;
cf = 0.001;
f(cf) = 4.04*cf.^0.5 + (cf.^0.5)*3.94*log(R*cf.^0.5) - 1
??? Attempted to access (0.001); index must be a positive integer or logical.

回答 (3 件)

Image Analyst
Image Analyst 2012 年 11 月 21 日
You don't need the (cf) if you just want the value of f for that value. Just use f by itself, like this:
R = 1000;
cf = 0.001;
f = 4.04*cf.^0.5 + (cf.^0.5)*3.94*log(R*cf.^0.5) - 1
You can turn it into a function if you want to pass it various values of cf as input arguments to a function, but it's not necessary if you just want the value of f and you can just specify what cf is before you calculate f, like I did above.

Akiva Gordon
Akiva Gordon 2012 年 11 月 21 日
You must first create an anonymous function to be able to evaluate the function like that:
This means "f" is a function with an input of "x". You would commonly see this on paper as f(x) = x+2;
f = @(x)(x+2);
a = 2;
This line evaluates "f" at the point "a" and stores it in "y".
y = f(a)
  2 件のコメント
Akiva Gordon
Akiva Gordon 2012 年 11 月 21 日
Please visit the following link for more information on anonymous functions:
Jan
Jan 2012 年 11 月 21 日
@Akiva: You can edit your answer instead of appending a comment.

サインインしてコメントする。


Star Strider
Star Strider 2012 年 11 月 21 日
編集済み: Star Strider 2012 年 11 月 21 日
MATLAB considers f as a matrix as you have written it. You need to define f as a function. It is easiest to write it as an Anonymous Function:
R = 1000;
cf = 0.001;
f = @(cf) 4.04*cf.^0.5 + (cf.^0.5)*3.94*log(R*cf.^0.5) - 1;
fcf = f(cf)
results in:
fcf =
-441.9125e-003
You can also define it as a function of both cf and R if you want to:
f = @(cf,R) 4.04*cf.^0.5 + (cf.^0.5)*3.94*log(R*cf.^0.5) - 1;

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by