Search indecies in matrix

1 view (last 30 days)
bob k
bob k on 16 Oct 2015
Edited: bob k on 20 Oct 2015
thank you very much

Accepted Answer

the cyclist
the cyclist on 16 Oct 2015
l1 = {'A' 'B';
'B' 'A';
'B' 'C';
'C' 'D';
'D' 'E';
'E' 'F';
'F' 'E';
'F' 'C';
'C' 'F';
'F' 'B';
'B' 'F';
'F' 'G';
'G' 'F';
'G' 'A';
'G' 'E';
'E' 'G'};
x = {'B' 'C' 'D' 'E' 'F' 'G'};
numberRows = size(l1,1);
numberCols = size(x,2) + 1; % Offsetting by one, to compensate for the 0 values in loc. Will chop that off later.
[~,loc] = ismember(l1,x);
loc1 = loc(:,1)+1;
loc2 = loc(:,2)+1;
A = zeros(numberRows,numberCols);
linearIndex1 = sub2ind(size(A),1:numberRows,loc1');
linearIndex2 = sub2ind(size(A),1:numberRows,loc2');
A(linearIndex1) = -1;
A(linearIndex2) = 1;
% Chop off spurious first column
A(:,1) = [];

More Answers (1)

bob k
bob k on 16 Oct 2015
Hi 'the cyclist',
Thank you very much, I could not figure that out for the life of me. I really appreciate it.
  1 Comment
the cyclist
the cyclist on 17 Oct 2015
Edited: the cyclist on 17 Oct 2015
I'm happy to have helped!
Two quick comments:
  1. The best form of thanks is upvoting and/or accepting the solution, which rewards the person who answered, and also may help guide folks who may have similar questions.
  2. You added this remark as a new "answer", when it would have been better placed as a comment on my answer.

Sign in to comment.

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!