How we can calculate using MATLAB for small values?
조회 수: 1 (최근 30일)
이전 댓글 표시
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.
댓글 수: 0
답변 (3개)
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.
댓글 수: 0
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
2012년 11월 21일
Please visit the following link for more information on anonymous functions:
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;
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!