Integral function, input parameter and output as vectors?

Hi!
I know that if I want several different integral values into a vector, I could use this loop:
int = [];
for i = 1:5
A = integral(@(y) func(y), 0, i);
int = [int, A];
end
But is it in any way possible to put in a vector instead of making this loop? Something like:
B = 1:5;
A = integral(@(y) func(y), 0, B);
isvector(A) %I want this to be true then.
And thereby get a vector A?

回答 (1 件)

Star Strider
Star Strider 2015 年 11 月 27 日

0 投票

Trying your code with the exp function:
B = 1:5;
A = integral(@exp, 0, B);
it throws the error ‘A and B must be floating-point scalars.’. So the short answer is: No!
However, not knowing what ‘func(y)’ actually is and not being clear on what you want to do, it is possible to integrate array-valued functions if you set the name-value pair 'ArrayValued in integral to true or 1.
For example, you might change your integral call to:
B = 1:5;
A = integral(@(y) exp(B.*y), 0, 1, 'ArrayValued',1);
That syntax works.

カテゴリ

ヘルプ センター および File ExchangeImages についてさらに検索

質問済み:

2015 年 11 月 27 日

回答済み:

2015 年 11 月 27 日

Community Treasure Hunt

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

Start Hunting!

Translated by