Effacer les filtres
Effacer les filtres

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 vue (au cours des 30 derniers jours)
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

Réponse acceptée

Scott MacKenzie
Scott MacKenzie le 7 Juil 2021
A{isnan(A{:,1}),2:end} = NaN

Plus de réponses (2)

dpb
dpb le 7 Juil 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 le 7 Juil 2021
Modifié(e) : Soniya Jain le 7 Juil 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

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by