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

16 Ansichten (letzte 30 Tage)
Mr M.
Mr M. am 1 Jun. 2021
Beantwortet: Walter Roberson am 2 Jun. 2021
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 Kommentare
Bob Thompson
Bob Thompson am 1 Jun. 2021
Bearbeitet: Bob Thompson am 1 Jun. 2021
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. am 2 Jun. 2021
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]

Melden Sie sich an, um zu kommentieren.

Antworten (2)

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

Walter Roberson
Walter Roberson am 2 Jun. 2021
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

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by