How to Generate this Function?

if
input_x={1/6,1/6,1/6,1/6,1/6,1/6}
How can I generate this function:
i=1:6
pi_all(i)=(1-(i-1)/5)*(0.45+1.1*(input_x(i)/2 +sum(input_x(i:i-1))))

6 件のコメント

Walter Roberson
Walter Roberson 2018 年 1 月 5 日
Are you looking for a way to vectorize the expression?
Note that i:i-1 is empty in MATLAB.
Torsten
Torsten 2018 年 1 月 5 日
In sum(...), you refer to input_x(1:0). But input_x(0) does not exist in MATLAB language.
Best wishes
Torsten.
pervesh anthwal
pervesh anthwal 2018 年 1 月 5 日
then how can I write summation input_x(j) for j<i for this equation
Torsten
Torsten 2018 年 1 月 5 日
Which elements of input_x do you want to sum if you write
sum(input_x(i:i-1))
?
Best wishes
Torsten.
Walter Roberson
Walter Roberson 2018 年 1 月 5 日
Torsten:
1:0 is not the same as [1, 0]. 1:0 is empty, so input_x(1:0) is the empty vector.
Walter Roberson
Walter Roberson 2018 年 1 月 5 日
Why are you not using a loop and
sum(input_x(1:i-1))

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

回答 (1 件)

pervesh anthwal
pervesh anthwal 2018 年 1 月 6 日
編集済み: Walter Roberson 2018 年 1 月 6 日

0 投票

what I want to do is:
for i=1
pi_all(i)=(1-(1-1)/5)*(0.45+1.1*(input_x(1)/2))
In this expression I want sum term to be 0 as i!=0
for i=2
pi_all(2)=(1-(2-1)/5)*(0.45+1.1*(input_x(2)/2 +sum(input_x(2:2-1))))
In here sum will take only input_x(1)
for i=3
pi_all(i)=(1-(3-1)/5)*(0.45+1.1*(input_x(3)/2 +sum(input_x(3:3-1))))
In here sum will take input_x(1)+input_x(2)
and so on.

1 件のコメント

Walter Roberson
Walter Roberson 2018 年 1 月 6 日
If you are using a loop, then like I indicated,
sum(input_x(1:i-1))

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

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2018 年 1 月 5 日

コメント済み:

2018 年 1 月 6 日

Community Treasure Hunt

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

Start Hunting!

Translated by