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

8 ビュー (過去 30 日間)
Olga
Olga 2014 年 8 月 27 日
コメント済み: Andrei Bobrov 2014 年 8 月 27 日
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 件のコメント
Andrei Bobrov
Andrei Bobrov 2014 年 8 月 27 日
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

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

回答 (4 件)

Iain
Iain 2014 年 8 月 27 日
A(isnan(A)) = B(isnan(A));

Andrei Bobrov
Andrei Bobrov 2014 年 8 月 27 日
i0 = isnan(A);
[ii,jj] = find(i0);
A(i0) = B(sub2ind(size(B),ii+1,jj));

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 8 月 27 日
ii=isnan(A)
A(ii)=B(ii+1)

Olga
Olga 2014 年 8 月 27 日
Was not successful, unfortunately :(

カテゴリ

Help Center および File ExchangeMatrix Operations and Transformations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by