New matrix creation based on 2 existing matrices

I have 2 matrices, a binary matrix representing data points (A) and the other with colour values for each trial (B). Both matrices are equal size. What I am trying to do is create a new matrix that contains the colour value from (B) wherever there is a 1 in (A) and NaN wherever there is a 0.
I am having trouble figure out how to properly map the two matrices together though. I have tried putting C(k,:) = B(k, A==1) in a loop but get an error exceeding dimensions. Also thought C = B(A) might work but it just creates a single column matrix with all the colours in question. I need to the matrix to match the dimensions of the pre-existing matrices.

1 件のコメント

Sean de Wolski
Sean de Wolski 2014 年 11 月 12 日
Can you provide sample inputs and the expected results?
Thanks!

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

 採用された回答

Star Strider
Star Strider 2014 年 11 月 12 日

0 投票

You’re close, but logical indexing needs to have both sides of the equation have matching indices to work.
This example will do what you want:
A = randi([0 1],10,10)
B = randi([100 107], 10,10)
C = NaN(10);
C(A==1) = B(A==1)
It assumes your colour value is a single scalar quantity. Here, I have numbered the colours [100:107].

2 件のコメント

Nick
Nick 2014 年 11 月 14 日
Awesome, thanks a lot.
Star Strider
Star Strider 2014 年 11 月 14 日
My pleasure!

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

質問済み:

2014 年 11 月 12 日

コメント済み:

2014 年 11 月 14 日

Community Treasure Hunt

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

Start Hunting!

Translated by