No. The provided information does not allow to guess the reason, sorry. But you can find the problem using the debugger. Set a breakpoint in the first line of teh function. Then call the function and step through it line by line. Observe the concerned array in the WorkSpace-Browser to see, where the values are deleted.
Note: "A function" and a "3 x 300 array" are two different things. I assume, you call a function with a [3 x 300] matrix as input - correctly?