How we can calculate using MATLAB for small values?

4 ビュー (過去 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 ExchangeCreating and Concatenating Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by