MATLAB: Logical Indexing one vector using a second vector

double arrayindexinglogical?matrix array

Hi,
I am relatively new to MatLab. I have the following problem. I have a double array in my data named Trial_Index size 50478×1 I also have a myTrialNumbers double array size 154×1.
The Trial_Index array has data in the following form:
Trial_Index = [1 1 1 1 2 2 3 3 3 3 4 5 5 …. n]
The TrialNumbers has data in the following form:
TrialNumbers = [1 2 3 4 5 ……. n]
I need a way to automate the task of generating one seperate logical vector for each element of TrialNumbers where it is found in TrialIndex. So that:
Vector1 = TrialNumbers(1) == Trial_Index If TrialNumbers(1) equals 1 then the Vector1 should contain:
Vector1 = [1 1 1 1 0 0….. 0]
If TrialNumbers(2) equals 2 (the second element in TrialNumbers), then Vector2 shouod containt:
Vector2 = [0 0 0 0 1 1 0 0 … 0].
It looks simple, I cannot find an answer to this.
Please help.

Best Answer

Vectors = bcxfun(@eq,Trial_Index(:),TrialNumbers(:).');
Related Question