How to remove NaN values from an array
3 views (last 30 days)
Show older comments
I have an array 'AllTEC' of measurements from different sensors at different latitudes 'Latrayend' (see attached test.mat). Each column in 'AllTEC' and 'Latrayend' is from a different sensor. I plot these as different color lines but a gap occurs where there are NaN values:
I want the lines to be continuous. For one sensor (a vector) I simply use:
%find and remove nan values
Latrayend(find(isnan(AllTEC)))=[]
AllTEC(find(isnan(AllTEC)))=[]
%plot figure 3
cmap = jet(m);
figure
for k=1:m
line(Latrayend(:,k),AllTEC(:,k), 'Color', cmap(k, :)), hold on% USE FOR LARGE NUMBER OF
ylabel('Total Electron Content (TECu = 10^{16} electrons/m^2)','fontsize',24, 'fontweight','bold')
xlabel('Satellite Latitude (Degree)','fontsize',24, 'fontweight','bold');
title('FIG 3- STEC as a function of satellite latitude')
end
legend(h)
hold off
But this does not work for an array. I tried doing this within the loop to create the figure, but get a subscript assignment mismatch error. I understand it is because the array would then not have the same order (when the loop goes through the first vector there are empty cells, but i don't care if it is an array of columns with different lengths. In this case I could just delete the entire row, but this may not be the case for futre datasets.
Thank you in advance for your help!
best regards,
Alex
0 Comments
Accepted Answer
Star Strider
on 23 Apr 2019
Since you want the lines to be continuous, consider using the fillmissing (link) function to fill in the NaN values with numbers. (It was introduced in R2016b.)
6 Comments
More Answers (0)
See Also
Categories
Find more on Reference Applications in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!