replace [ ] in an array with 0's

talks about replace [] with 0's for one column. But suppose I have a table with many columns and I want to run this operation for multiple colmns. Is there any way simpler than writing another loop?

 Accepted Answer

tables use functions like ismissing() and fillmissing():
newTable = fillmissing(badTable, 'constant', 0)

1 Comment

alpedhuez
alpedhuez on 7 Jul 2020
Edited: alpedhuez on 7 Jul 2020
Invalid fill constant type.
[intConstVj,extMethodVj] = checkArrayType(Avj,intMethod,intConstVj,extMethodVj,x,true,ma);
B.(vj) = fillTableVar(indVj,A.(vj),intMethod,intConst,extMethod,x,useJthFillConstant,useJthExtrapConstant,mavj);
B = fillTable(A,intM,intConstOrWinSize,extM,x,dataVars,ma);

Sign in to comment.

More Answers (2)

You can get all the emtpy functions in a cell using cellfun ..
idx = cellfun(@isempty,C) ; % get empty cells in a cell array C
C(idx) = 0 ; % replace with zero
Note that, cellfun also uses loop inside.

1 Comment

alpedhuez
alpedhuez on 7 Jul 2020
Edited: alpedhuez on 7 Jul 2020
Did not work with table

Sign in to comment.

KSSV
KSSV on 7 Jul 2020
You run on each column of a table..

5 Comments

lots of columns...
You can also address table columns numerically using all the other addressing manners, loops, colon, etc., etc., etc., ...
For table T, for column 3 to 5, is it like
for j=3:5 % column
for i = 1:length(T) % row
if isempty(T(i,j))
T(i,j) = 0;
end
end
end
?
Did you try it? I dunno, don't have your table but can only have empty [] in cell array so the table column content must be a cell it would seem...
Again, w/o a sample piece of data to work on it's tough...
it worked

Sign in to comment.

Categories

Community Treasure Hunt

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

Start Hunting!