Ho to perform the same calculation in all columns of a matrix?

조회 수: 1 (최근 30일)
Max
Max 2016년 4월 6일
편집: Star Strider 2016년 4월 6일
Hi all,
I would like to perform "adtest" in all columns of my matrix sized 200x90 without having a loop iterating 90 times. I just wondered if there a way of getting a vector of 1x90 each value indicates the "adtest" of each column?
Thanks a lot in advance!

채택된 답변

Star Strider
Star Strider 2016년 4월 6일
편집: Star Strider 2016년 4월 6일
This works:
D = randi(9, 15, 5); % Create Data
Dc = mat2cell(D, size(D,1), ones(1,size(D,2))); % Split Into Cells By Column
adt = cellfun(@adtest, Dc); % Perform ‘adtest’ On Each Cell Column
It takes advantage of MATLAB’s cell data type to ‘parse’ the input matrix into individual column cells, then uses cellful to perform adtest on each cell column. The result in ‘adt’ is a logical array of results.
EDIT To get other results from adtest, add a variable to store them to the output of the cellfun call. So to get the significance as well, this works:
[adt,p] = cellfun(@adtest, Dc); % Perform ‘adtest’ On Each Cell Column

추가 답변 (0개)

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by