MATLAB Answers

Represent results in vector format.

6 views (last 30 days)
Hi. Good morning.
I hope you can help me.
I have two matrices A and B it is about finding the positions of the values ​​of the matrix A in the mariz B.
The code below finds the values ​​in matrix A and their respective positions and values ​​in matrix B
______________________________________
clc; clear; close all; short format
A = [1 2 3 4 5 6 7 8 9 10];
B = [1 25 31 41 11 61 7 81 31 11
   81 3 71 31 31 6 11 8 61 31
   21 81 2 61 5 31 31 31 19 12
   91 31 41 4 61 81 61 41 10 9];
for b = 1: 1: length (A)
E = A (1, b)
[row1, col1] = find (B == E)
end
______________________________
The results shown in the command window are in this format. I show only one value found:
_______________________________________________
E =
    10
row1 =
     4
col1 =
     9
_________________________________________
I would like to know how to do it to show me three vectors, a vector of values, one of rows and another of columns for example:
      E = [1 2 3 4 5 6 7 8 9 10]
row1 = [1 3 2 4 3 2 1 2 4 4]
 col1 = [1 3 2 4 5 6 7 8 10 9]
I await your advice.
Thanks and regards.

  0 Comments

Sign in to comment.

Accepted Answer

Stephen Cobeldick
Stephen Cobeldick on 8 Oct 2019
>> A = 1:10
A =
1 2 3 4 5 6 7 8 9 10
>> B = [1,25,31,41,11,61,7,81,31,11;81,3,71,31,31,6,11,8,61,31;21,81,2,61,5,31,31,31,19,12;91,31,41,4,61,81,61,41,10,9]
B =
1 25 31 41 11 61 7 81 31 11
81 3 71 31 31 6 11 8 61 31
21 81 2 61 5 31 31 31 19 12
91 31 41 4 61 81 61 41 10 9
>> [X,Y] = ismember(A,B);
>> E = A(X)
E =
1 2 3 4 5 6 7 8 9 10
>> [R,C] = ind2sub(size(B),Y(X))
R =
1 3 2 4 3 2 1 2 4 4
C =
1 3 2 4 5 6 7 8 10 9

  1 Comment

Ricardo Gutierrez
Ricardo Gutierrez on 8 Oct 2019
Excellent !!!
It works !!!
Thanks so much.

Sign in to comment.

More Answers (0)