How to fill end of rows of a matrix with NaN values?

17 ビュー (過去 30 日間)
Mr M.
Mr M. 2021 年 6 月 1 日
回答済み: Walter Roberson 2021 年 6 月 2 日
I have a matrix M, and vector of indices K. I would like to make an element M(k,j) = NaN if j >= K(k). It is possible to do this with a vectorized short methode?
  2 件のコメント
Bob Thompson
Bob Thompson 2021 年 6 月 1 日
編集済み: Bob Thompson 2021 年 6 月 1 日
Why not just preallocate the matrix with nan values? Do you have any idea of the max size your matrix could be?
M = nan(max(k),max(j));
Mr M.
Mr M. 2021 年 6 月 2 日
I think, you misunderstood my problem. Lets see an example.
let M be: [1,2,3; 1,2,3; 1,2,3; 1,2,3]; An let K be: [2; 3; 1; NaN or 4 or anithing else]. This means I need the following output:
[1;NaN,NaN; 1,2,NaN; NaN,NaN,NaN; 1,2,3]

サインインしてコメントする。

回答 (2 件)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021 年 6 月 1 日
Hi,
here is a simple solution, e.g.:
M = magic(5);
M(:,end)=nan

Walter Roberson
Walter Roberson 2021 年 6 月 2 日
M = [1,2,3; 1,2,3; 1,2,3; 1,2,3]
M = 4×3
1 2 3 1 2 3 1 2 3 1 2 3
K = [2; 3; 1; NaN]
K = 4×1
2 3 1 NaN
M((1:size(M,2)) >= K(:)) = nan
M = 4×3
1 NaN NaN 1 2 NaN NaN NaN NaN 1 2 3

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by