# Unknown operation performed.

조회 수: 1(최근 30일)
Yulia M 2019년 11월 21일
편집: Yulia M 2019년 11월 22일
Hi,
I am new to MATLAB. the following is my code I am unable to understand
the operation perfromed B = S(A); and C = S(~A);
B has size 15x1 double
C has size 285x1 double
S is 20x15 double
A is 20x15 logical
my question is what operation has been performed in B and C and how did they get that size?
clear all;
clc;
A = false( 20,9 );
sP = generate_pilots( 15 , 4, 'deterministic' );
G = [4:4:11 12:4:21]';
H = (2:7:20)';
A( G, H-1 ) = true;
S = zeros( size(A) );
B = S(A);
C = S(~A);
D = sP(1:15);
S( A ) = sP(1:15);
Regards,
Gnanesh

댓글을 달려면 로그인하십시오.

### 채택된 답변

Philippe Lebel 2019년 11월 21일
편집: Philippe Lebel 2019년 11월 21일
This is called logical (or boolean) indexing.
Your A matrix is filled with booleans.
B is now a vector that has all the elements of S that correspond to the same indexes as the Ones in A.
C is now a vector that has all the elements of S that correspond to the same indexes as the Zeros in A.
a = logical([1 0 0 1; 0 0 1 0])
s = [1,2,3,4;5,6,7,8]
s(a)
ans =
1
7
4
##### 댓글 수: 3표시숨기기 이전 댓글 수: 2
Yulia M 2019년 11월 22일
편집: Yulia M 2019년 11월 22일
Hi Philippe,
I got it. Thank you very much for your valuable time.
regards,

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

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

Start Hunting!