if column 1 is nan, make corresponding number in column2 nan

1 回表示 (過去 30 日間)
C.G.
C.G. 2022 年 9 月 30 日
編集済み: Cel Kulasekaran 2022 年 9 月 30 日
I have the code below which randomly assigns 10% of the dataset to Nan. However this only turns column 1 to NaN. How can I make the corresponding number in column 2 also NaN?
Period = [1:1:100]';
F = [201:1:300]';
A=[Period F]; % a random matrix
Data = A;
percent_miss = 0.1;
nTime = length(Period);
Data(randperm(nTime,round(nTime*percent_miss))) = NaN;

回答 (2 件)

Cel Kulasekaran
Cel Kulasekaran 2022 年 9 月 30 日
編集済み: Cel Kulasekaran 2022 年 9 月 30 日
Re-writing your code, with suggestion:
Period = 1:100;
F = 201:300;
A = [Period', F']; % a random matrix
Data = A;
percent_miss = 0.1;
nTime = length(Period);
% adding this step for illustrative clarity
updateRows2NaN = randperm(nTime,round(nTime*percent_miss));
% you will want to apply this row-wise operation (i.e. across all columns)
Data(updateRows2NaN, :) = nan;

Kevin Holly
Kevin Holly 2022 年 9 月 30 日
Period = [1:1:100]';
F = [201:1:300]';
A=[Period F]; % a random matrix
Data = A;
percent_miss = 0.1;
nTime = length(Period);
Data(randperm(nTime,round(nTime*percent_miss))) = NaN;
LogicalofNans = isnan(Data(:,1));
Data(LogicalofNans,2)=nan;

カテゴリ

Help Center および File ExchangeOctave についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by