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 commentaire

Can you provide sample inputs and the expected results?
Thanks!

Connectez-vous pour commenter.

 Réponse acceptée

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 commentaires

Nick
Nick le 14 Nov 2014
Awesome, thanks a lot.
My pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by