필터 지우기
필터 지우기

Can anyone please explain me this line of a code?

조회 수: 1 (최근 30일)
jasmine
jasmine 2019년 6월 7일
댓글: jasmine 2019년 6월 7일
probability = arrayfun(@(x) mean(audR(audR(:,1)==x,2)==2) , contrast);
  댓글 수: 5
Adam Danz
Adam Danz 2019년 6월 7일
편집: Adam Danz 2019년 6월 7일
Ahhh... yeah it's an array (blush).
audR(:,1)==x %this produces a logical index marking rows of the first
%column of audR that match the input value 'x'
audR(audR(:,1)==x,2) % for each of those rows from the comment above,
% you're extracting the data from the second
% column of audR.
(audR(audR(:,1)==x,2)==2) %and finally, you're determining whether those
% values are equal to 2.
Here's an example you can execute line by line to see what's going
% Produce fake data
audR = [[1;1;2;2;3;3],[1;2;1;2;1;2]];
x = 2
audR(:,1)==x
audR(audR(:,1)==x,2)
(audR(audR(:,1)==x,2)==2)
jasmine
jasmine 2019년 6월 7일
Thank you very much for your answer!

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

채택된 답변

Stephen23
Stephen23 2019년 6월 7일
편집: Stephen23 2019년 6월 7일
If audR is a matrix, then
audR(audR(:,1)==x,2)==2
% ^^^^^^^^^ % first column of audR
% ^^^ % ... is equal to x.
% ^^^^^^^^^^^^ % used as a logical index into the rows of audR
% ^ % second column of audR
% ^^^ % ... is equal to 2.
So the code takes the rows of audR where the first column equals x, and checks if their second column equals 2.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Whos에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by