Hi, i have a matrix 7938x498 with numerical and NaN values. I want to change value to some NaN elements but i don't know exactly their index in the matrix. I make an example to explain it better.
if i have a vector like this A=(NaN,NaN,NaN,NaN,NaN,1,5,7,9,NaN,NaN,NaN,NaN,5,5,53,3,NaN,NaN). How can i change the NaN values beetween 9 and 5 without change the others? Thanks

5 comentarios

Scott MacKenzie
Scott MacKenzie el 27 de Abr. de 2021
What you are asking for seems reasonable. However, can you describe the problem in more general terms. What if there are many sequences of numbers interspersed with NaN sequences?
dpb
dpb el 27 de Abr. de 2021
Or, another way to ask the same question -- how do you determine which locations it is that are wanted to be changed? Is it based on the value of the element itself of, in the example given, because it is the sequence after the sequence of finite values and it doesn't matter that 9 is 9 or 5 is 5; just that they are finite?
Giacomo Abrardo
Giacomo Abrardo el 27 de Abr. de 2021
Yes, i have 498 stations and each column of the matrix i made shows the precipitation data of a station. From the first day of activity to the last they have several days of maintenance and they could have event more sequences of NaN elements for a single station. The problem is that i have to apply a recursive formula at any column and i want to change the NaN value with a numerical value of the nearest station.
Giacomo Abrardo
Giacomo Abrardo el 27 de Abr. de 2021
dqb i only need that they are finite. Doesn't matter the exact value
Giacomo Abrardo
Giacomo Abrardo el 27 de Abr. de 2021
that's part of the matrix. I need to change the value 3985 and 3989 from second column

Iniciar sesión para comentar.

 Respuesta aceptada

the cyclist
the cyclist el 27 de Abr. de 2021

0 votos

Here is one way:
% The original data
A = [NaN,NaN,NaN,NaN,NaN,1,5,7,9,NaN,NaN,NaN,NaN,5,5,53,3,NaN,NaN];
% The indices of the numeric values
numericIndices = find(~isnan(A));
% The indices of the NaNs in the gap between the numeric values
gapIndices = setxor(min(numericIndices):max(numericIndices),numericIndices);
% Fill in the values you want to assign
A(gapIndices) = ...

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

el 27 de Abr. de 2021

Comentada:

el 27 de Abr. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by