## error sign not valid

### Charlene (view profile)

on 9 May 2013
Accepted Answer by the cyclist

### the cyclist (view profile)

I have this function

```n = 1;
Product = 1;
while( Product < N )
{
Product = Product * (2*n);
n = n + 1;
}
end
```

and this error keeps on popping up Error: File: Untitled5.m Line: 5 Column: 9 The expression to the left of the equals sign is not a valid target for an assignment.

Jordan Monthei

### Jordan Monthei (view profile)

on 9 May 2013

For readability sake, I'm going to add this on here.

```% this loop is used to find how many iterations are needed in the expression 2*4*6*...*2n in order to exceed a predetermined maximum.
```
```n=1;
Product = 1;       % variables initialized as one
```
```while ( Product < N)      % N being a predetermined maximum
{
Product = Product * (2 * n);      % 2*4*6*...*2n until
n = n + 1;
}
end
```

it would be helpful to know what the rest of the program is doing outside of this function. Is N declared, if so, what is it declared as? Where does Line: 5 Column: 9 correspond within what you have?

## Products

No products are associated with this question.

### the cyclist (view profile)

Answer by the cyclist

### the cyclist (view profile)

on 9 May 2013

That's not valid MATLAB syntax. In particular, the curly brackets shouldn't enclose the while loop. (You also used capital N where you had been using small n.)

Does this do what you intend?

```n = 1;
Product = 1;
while( Product < n )
```
```Product = Product * (2*n);
n = n + 1;
```
```end
```

Jordan Monthei

### Jordan Monthei (view profile)

on 9 May 2013

small n is treated as a multiplier onto the 2 whereas large N is used as a maximum value. with that change, you have the intended function. Sorry about the curly brackets, that was my suggestion, I'm used to C coding.

Jordan Monthei

### Jordan Monthei (view profile)

on 9 May 2013

i ran this function in MATLAB with N=500; i received a value of 6 for n and a final product of 3840 showing that this function does work.

```2 = 2              n=1  -> 1st iteration
2*4 = 8            n=2  -> 2nd iteration
2*4*6 = 48         n=3  -> 3rd iteration
2*4*6*8 = 384      n=4  -> 4th iteration
2*4*6*8*10 = 3840  n=5  -> 5th iteration
and then n is incremented one more time before exiting the loop to give n=6.
```

In this case you could use the expression "#iterations = n-1" after the loop and you would have your answer.

#### Join the 15-year community celebration.

Play games and win prizes!

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi