How can I insert some missing rows to a matrix?
1 view (last 30 days)
Show older comments
Szabó-Takács Beáta
on 19 Sep 2015
Commented: Szabó-Takács Beáta
on 19 Sep 2015
Dear All, I have a matrix A(10950,33087) where the values are stored (time,coordinates) during 30 year period. In this matrix the leap years are missing. I would like to insert colums in the leap years (29th of February) with value NaN. I tried to solve with the following way:
period={'01-Jan-2071';'31-Dec-2100'};dates=datevec([datenum(period{1}):datenum(period{2})]');
k=find(dates(:,2) ==2 & dates(:,3) ==29);
for i=1:10957
A_2(k,:)=nan;
A_2(i,:)=A(i,:);
end
It seems that A2 is same as A with NaN values in the leap years, but I am not sure that it is the best solution. Could someone write me if this way is correct or offer me a better method? Thank you for your help in advance!
0 Comments
Accepted Answer
Walter Roberson
on 19 Sep 2015
A_3 = zeros(size(dates,1), size(A_2,2), class(A_2)); %same type, expanded size
lyidx = dates(:,2) ==2 & dates(:,3) ==29;
A_3(~lyidx,:) = A_2;
A_3(lyidx,:) = nan;
More Answers (0)
See Also
Categories
Find more on Matrix Indexing 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!