MATLAB Answers

Converting numbers into logicals

4 views (last 30 days)
Hi, I would need to convert matrix A into a 120x9 logical array (B). A is a 120x1 cell, and each row contains numbers 1-9 (number of numbers vary). So for example, if row 1 is [3; 5; 6;8], I would like B to reflect [0 0 1 0 1 1 0 1 0] in the first row. How may I code for this?
Thank you, appreciate any help! :)

  0 Comments

Sign in to comment.

Accepted Answer

Stephen Cobeldick
Stephen Cobeldick on 24 Feb 2020
Edited: Stephen Cobeldick on 24 Feb 2020
>> A = {[3;5;6;8],[2,3,5]}; % fake data
>> B = cell2mat(cellfun(@(v)ismember(1:9,v),A(:),'UniformOutput',false))
B =
0 0 1 0 1 1 0 1 0
0 1 1 0 1 0 0 0 0

  1 Comment

Charms
Charms on 24 Feb 2020
thank you stephen, worked beautifully!

Sign in to comment.

More Answers (0)