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 Kommentare

Walter Roberson
Walter Roberson am 5 Jan. 2018
Are you looking for a way to vectorize the expression?
Note that i:i-1 is empty in MATLAB.
Torsten
Torsten am 5 Jan. 2018
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 am 5 Jan. 2018
then how can I write summation input_x(j) for j<i for this equation
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 am 5 Jan. 2018
Torsten:
1:0 is not the same as [1, 0]. 1:0 is empty, so input_x(1:0) is the empty vector.
Why are you not using a loop and
sum(input_x(1:i-1))

Melden Sie sich an, um zu kommentieren.

Antworten (1)

pervesh anthwal
pervesh anthwal am 6 Jan. 2018
Bearbeitet: Walter Roberson am 6 Jan. 2018

0 Stimmen

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 Kommentar

If you are using a loop, then like I indicated,
sum(input_x(1:i-1))

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 5 Jan. 2018

Kommentiert:

am 6 Jan. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by