Replacing all values except NaN with column number

4 views (last 30 days)
I'm trying to convert
53 96 87
48 94 NaN
49 95 NaN
51 98 NaN
52 99 NaN
55 100 NaN
to
1 2 3
1 2 NaN
1 2 NaN
1 2 NaN
1 2 NaN
1 2 NaN
The best I can do is this, which of course fills each column (including the NaNs).
for a = 1:size(y,2)
for b = a
y(:,a) = b;
end
end
If anyone could point me toward a function that could work that would be very helpful. I've tried ~isnan(y) and others but they only allow one input argument.

Accepted Answer

James Tursa
James Tursa on 22 Jul 2014
E.g.,
y = floor(rand(6,3)*100);
y(2:6,3) = nan; % test data
z = repmat(1:size(y,2),size(y,1),1);
z(isnan(y)) = nan;
  1 Comment
Scott
Scott on 22 Jul 2014
That's clever. I'll have to add repmat to my small repertoire. Thanks a lot, James :)

Sign in to comment.

More Answers (0)

Tags

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!