Replace values in a matrix with ones from other matrix based on some criteria

8 vues (au cours des 30 derniers jours)
Olga
Olga le 27 Août 2014
Commenté : Andrei Bobrov le 27 Août 2014
Hello, I would appreciate any help to solve this problem. Lets say i have one matrix - A in such form Nan,0,0; Nan,0,0; 37,0,0; 0,0,0;
and another matrix - B, of the same size with some values. What i try to do is to replace Nan with values from B according to the value after Nan. It means that if i have 37, previous Nans should be replaced with correponding values of B from 37 column. So, basically in each column i have a number of Nan rows followed by some number that indicates from which column of B Nan should be replaced to corresponding values. Could you please help me. Thanks beforehand!
  1 commentaire
Andrei Bobrov
Andrei Bobrov le 27 Août 2014
Let
A = [nan,0,0; nan,0,0; 37,0,0; 0,0,0];
B = reshape(1:numel(A),size(A));
Anew = ...
Give us the Anew

Connectez-vous pour commenter.

Réponses (4)

Iain
Iain le 27 Août 2014
A(isnan(A)) = B(isnan(A));

Andrei Bobrov
Andrei Bobrov le 27 Août 2014
i0 = isnan(A);
[ii,jj] = find(i0);
A(i0) = B(sub2ind(size(B),ii+1,jj));

Azzi Abdelmalek
Azzi Abdelmalek le 27 Août 2014
ii=isnan(A)
A(ii)=B(ii+1)

Olga
Olga le 27 Août 2014
Was not successful, unfortunately :(

Community Treasure Hunt

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

Start Hunting!

Translated by