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?

 Risposta accettata

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

1 Commento

alpedhuez
alpedhuez il 7 Lug 2020
Modificato: alpedhuez il 7 Lug 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);

Accedi per commentare.

Più risposte (2)

KSSV
KSSV il 7 Lug 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.
KSSV
KSSV il 7 Lug 2020

0 voti

You run on each column of a table..

5 Commenti

alpedhuez
alpedhuez il 7 Lug 2020
lots of columns...
dpb
dpb il 7 Lug 2020
You can also address table columns numerically using all the other addressing manners, loops, colon, etc., etc., etc., ...
alpedhuez
alpedhuez il 7 Lug 2020
Modificato: alpedhuez il 7 Lug 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 il 7 Lug 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...
alpedhuez
alpedhuez il 7 Lug 2020
it worked

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by