## An easy Array question

### Hello kity (view profile)

on 12 Dec 2012

I have a set of data seprated by Nans, example; DATA= [1; 2; 3; 4; NaN ; 6 ;7 ; NaN]

I want to do a calculation in every set of rows (example 1- 4 and 6-7).

So I programmed and found all the begin and end indices of each row (in this example, begin [ 1 ; 4] and end [6 ; 7]).

so this is what i want: Have two columns with begin and end indices;

```column 1;  A=[1 ; 6 ] %%%these are the begin indices
column 2;  B[ 4 ;7 ] %% these are the end indices
```

now i want created a new array (call it new array) that has counted 1-4 and 6-7.

Then all i need to do is out=data(newarray) and i ll have my rows which i use for calc

## Products

No products are associated with this question.

### Sean de Wolski (view profile)

on 12 Dec 2012

Are you sure you need a cell array?

I would just use a for-loop and loop over the start and end indices:

```sidx = start index
eidx = end index
for ii = 1:numel(eidx)
do_something_with(X(sidx(ii):eidx(ii)));
end
```

Of course this is also how I would build the cell array (i.e. replace

do_something_with with C(idx) = {}

And preallocate C with

```C = cell(numel(sidx,1));
```

Hello kity

### Hello kity (view profile)

on 12 Dec 2012

i changed my question a bit, maybe it is more clear now.

### Andrei Bobrov (view profile)

on 13 Dec 2012
Edited by Andrei Bobrov

### Andrei Bobrov (view profile)

on 13 Dec 2012
```DATA= [1; 2; 3; 4; NaN ; 6 ;7 ; NaN];
a = [1;4];
b = [6;7];
```
```d = DATA(~isnan(DATA));
out = mat2cell(d(:),[diff(a)+1,diff(b)+1],1);
```

Jan Simon

### Jan Simon (view profile)

on 13 Dec 2012

I think there must be a ~ before isnan.

Andrei Bobrov

### Andrei Bobrov (view profile)

on 13 Dec 2012

Hi Jan, thank you. Corrected.

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