Hello, i have a table with many rows and 3 columns. In the first column some values are NaN. How can i put NaN values in the other columns in the same rows?

1 visualización (últimos 30 días)
for example
A =
A1 A2 A3
___ __ __
NaN 4 7
NaN 5 8
3 6 9
and I would like to have
A =
A1 A2 A3
___ __ __
NaN NaN NaN
NaN NaN NaN
3 6 9

Respuesta aceptada

Scott MacKenzie
Scott MacKenzie el 7 de Jul. de 2021
A{isnan(A{:,1}),2:end} = NaN

Más respuestas (2)

dpb
dpb el 7 de Jul. de 2021
Use logical indexing; no loops needed --
>> A{isnan(A.A1),:}=nan
A =
3×3 table
A1 A2 A3
___ ___ ___
NaN NaN NaN
NaN NaN NaN
3 6 9
>>
NB: the "curlies" to return an array from the indexing operation on the LHS, smooth parens here would return a table instead.
See the documentation for the table class for a detailed exposition on addressing modes and syntax for tables--there's a "veritable plethora" of ways to do so.

Soniya Jain
Soniya Jain el 7 de Jul. de 2021
Editada: Soniya Jain el 7 de Jul. de 2021
Hey, you can use isnan() function to find the location where values are NaN in the 1st column,
A = [NaN,4,7; NaN,5,8; 3,6,9];
nanV = isnan(A(:,1));
for i=1:height(A)
if nanV(i,1) == 1
A(i,:) = NaN;
end
end

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by