## working with an array pointer in a recursive function

on 8 Nov 2012

### Daniel Shub (view profile)

H, I want to create a recursive function that gets an image matrix and turns it into a quadtree array. so i figured the best way to do this is with a recursive function. so this is what i came up with:

``` function [void] = ConstrucQuadtree( A,n,QuadtreeArray,index )
%A recursively
if (n=1)
index=index+1;
else
end
end```

since i never worked with recursive functions in MATLAB i have a few questions : 1. how do i return void ? (i guess what i wrote in my code is illegal) 2. how do i work with pointers? (both index and QuadtreeArray are supposed to change from one recursion to another.

thanks

## Products

No products are associated with this question.

### Daniel Shub (view profile)

on 8 Nov 2012

If you want to return "void" you simply do not return anything ...

```function ConstrucQuadtree( A,n,QuadtreeArray,index )
```

MATLAB is lazy and passes pointers around when it can and only allocates new memory when necessary. For your purposes if instead you return QuadtreeArray and index, MATLAB will not allocate new memory. It i important that you return a variable of the same name as the input ...

```function [QuadtreeArray, index] = ConstrucQuadtree( A,n,QuadtreeArray,index )
```

and then modify your code to accept the returned arguments. Something like ...

```[QuadtreeArray, index] = ConstrucQuadtree(A(0:n/2,0:n/2),length(A(0:n/2,0:n/2),QuadtreeArray,index);
```

Itzik Ben Shabat

### Itzik Ben Shabat (view profile)

on 8 Nov 2012

thanks! worked great! (aside from a small indexing problem, forgot that the array starts from 1 and not 0... ) :)

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

Play games and win prizes!

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

### Discover what MATLAB® can do for your career.

Apply Today

New to MATLAB?

Learn MATLAB today!