Replace values in a matrix with ones from other matrix based on some criteria
Afficher commentaires plus anciens
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
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
Réponses (4)
Iain
le 27 Août 2014
A(isnan(A)) = B(isnan(A));
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
le 27 Août 2014
ii=isnan(A)
A(ii)=B(ii+1)
Olga
le 27 Août 2014
0 votes
Catégories
En savoir plus sur Matrix Operations and Transformations dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!