MATLAB Answers

replace [ ] in an array with 0's

5 views (last 30 days)
alpedhuez
alpedhuez on 7 Jul 2020
Edited: alpedhuez on 7 Jul 2020
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?

  0 Comments

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 7 Jul 2020
tables use functions like ismissing() and fillmissing():
newTable = fillmissing(badTable, 'constant', 0)

  1 Comment

alpedhuez
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)

KSSV
KSSV on 7 Jul 2020
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
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

Show 2 older comments
alpedhuez
alpedhuez on 7 Jul 2020
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
?
dpb
dpb on 7 Jul 2020
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...

Sign in to comment.