How to reshape array based on another array with nan values

6 ビュー (過去 30 日間)
Michael Burnett
Michael Burnett 2020 年 11 月 2 日
コメント済み: Michael Burnett 2020 年 11 月 2 日
I want to see if there is a specific function that will help me do this:
I have a 10x1 array.
a = [2 6 5 4 7 2 3 2 3 1];
I would like to reshape it to fit the same shape as logical array b (with nan values as 0).
b = [1 1 1 0;1 1 1 1;1 0 1 1]
Is there an easy way to reshape my array in that mold?

採用された回答

Bruno Luong
Bruno Luong 2020 年 11 月 2 日
編集済み: Bruno Luong 2020 年 11 月 2 日
a = [2 6 5 4 7 2 3 2 3 1]
b = [1 1 1 0;1 1 1 1;1 0 1 1]
A = nan(size(b'));
A(b'==1) = a;
A = A.'

その他の回答 (1 件)

Abolfazl Chaman Motlagh
Abolfazl Chaman Motlagh 2020 年 11 月 2 日
b=logical(b);
A=zeros(size(b));
A(b)=a;
A(~b)=nan(sum(~b,'all'),1);
output:
A =
2 4 2 NaN
6 7 3 3
5 NaN 2 1
  2 件のコメント
Abolfazl Chaman Motlagh
Abolfazl Chaman Motlagh 2020 年 11 月 2 日
編集済み: Abolfazl Chaman Motlagh 2020 年 11 月 2 日
or just
b=logical(b);
A=nan(size(b));
A(b)=a;
Michael Burnett
Michael Burnett 2020 年 11 月 2 日
Lol, I'm quite new to MATLAB, so this is very helpful. Thanks

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

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by