MATLAB: Replacing the NaN with specific values

cell matrix

Dear all,
I have the following matrix
A={'country' 'values'
'E' '1'
'E' [NaN]
'E' [NaN]
'E' '2'
'E' [NaN]
'E' [NaN]
'E' [NaN]
'E' [NaN]
'E' [NaN]
'E' '3'
'E' [NaN]
'E' [NaN]
'E' [NaN]
'E' [NaN]
'EE' [NaN]
'E' '4'
'I' '1'
'I' [NaN]
'I' [NaN]
'I' '2'
'I' [NaN]
'I' [NaN]
'I' [NaN]
'I' [NaN]
'I' [NaN]
'I' '3'
'I' [NaN]
'I' [NaN]
'I' [NaN]
'I' [NaN]
'I' [NaN]
'I' '4'
'I' [NaN]
'I' [NaN]
'I' [NaN]
'I' [NaN]
'I' [NaN]
'I' '5'
'K' '1'
'K' [NaN]
'K' [NaN]
'K' '2'
'K' [NaN]
'K' [NaN]
'K' [NaN]
'K' [NaN]
'K' [NaN]
'K' [NaN]
'K' [NaN]
'K' '3'
'K' [NaN]
'K' [NaN]
'K' [NaN]
'K' '4'
'K' [NaN]
'K' [NaN]
'K' [NaN]
'K' [NaN]
'K' [NaN]
'K' '5'
};
The first column describes the countries and the second the values corresponding to each country.
For each country the initial value is always '1'. For each country I want to replace the NaNs with the value that is before them.
So for the first country I want to have
'E' '1'
'E' '1'
'E' '1'
'E' '2'
'E' '2'
'E' '2'
'E' '2'
'E' '2'
'E' '2'
'E' '3'
'E' '3'
'E' '3'
'E' '3'
'E' '3'
'EE' '3'
'E' '4'
for country I I want to have
'I' '1'
'I' '1'
'I' '1'
'I' '2'
'I' '2'
'I' '2'
'I' '2'
'I' '2'
'I' '2'
'I' '3'
'I' '3'
'I' '3'
'I' '3'
'I' '3'
'I' '3'
'I' '4'
'I' '4'
'I' '4'
'I' '4'
'I' '4'
'I' '4'
'I' '5'
and so so..
I am trying to come up with a code but I got stuck
Is there any way of doing that
My real vector contains 300 countries, so doing manual is quite tedious
thanks in advance

Best Answer

A1 = A(2:end,:);
t = ~cellfun(@isnan,A1(:,2));
k = A1(t,2);
A(2:end,2) = k(cumsum(t));
added on comment
A1 = A(2:end,2);
t = cellfun(@ischar,A1);
A1(t) = cellfun(@str2double,A1(t),'un',0);
t1 = ~cellfun(@isnan,A1);
k = A1(t1);
A(2:end,2) = k(cumsum(t1));