PLS-00306: wrong number or types of arguments in call to 'EXTEND'

Hello Friends, I have the following program:
Declare
...
TYPE exp_array IS TABLE OF NUMBER INDEX BY PLS_INTEGER;
TYPE lags_array IS TABLE OF NUMBER INDEX BY PLS_INTEGER;array
TYPE att_array IS TABLE OF NUMBER INDEX BY PLS_INTEGER;

exp exp_array;
lags lags_array; -- Initialize lags array
att att_array;

Begin
FOR j IN 1..53 LOOP
att(j):=0;
end loop;

FOR j IN 1..53 LOOP
exp.extend; /* This is where the error is **/
exp(j) := 0;
lags.extend;
lags(j) := 0;
END LOOP;

Can you point me why I am getting PLS-00306: error. As you can see, I do not have any arguments in the Extend method.

Not a PL/SQL guru myself (perhaps other PL/SQL experts can help here), but is there a reason you have both
lags.extend
and
lags(j) := 0;
in the same loop?

What is it that you're trying to accomplish in the code?

If you had written

TYPE exp_array IS TABLE OF NUMBER;    -- without INDEX BY PLS_INTEGER

and friends, then we would talk about collections and then exp.extend would work fine.
However you are working with the older index-by tables (officially PL/SQL tables) where extend does not apply. Just remove those in your code.

Disclaimer: I'm not a PL/SQL guru.