function for cell array

조회 수: 1(최근 30일)
Oskar Kilgus
Oskar Kilgus 2022년 7월 28일
편집: Jon 2022년 8월 2일
Hi folks,
i´ve got a cell array with vectors of data type double in every cell. Now i want to apply a function to every single cell. I found the command cellfun(func,A) to be useful.
Nonetheless i dont know how to implement a function func to do what i want on every part of the cell array. In particular i dont get how to tell the function that the vectors of doubles in the cells of A are the input arguments.
I´m thankful for any advice!

채택된 답변

Jon 2022년 7월 28일
Here's a simple example
% Make an example cell array with a vector in each cell
A = cell(2,3); % preallocate
for i = 1:2
for j = 1:3
A{i,j} = rand(4,1);
A = 2×3 cell array
{4×1 double} {4×1 double} {4×1 double} {4×1 double} {4×1 double} {4×1 double}
% Now use cellfun to compute the sum of the elements in each vector
B = cellfun(@(x) sum(x),A)
B = 2×3
1.8600 1.9744 2.3527 2.2433 2.3225 2.4160
  댓글 수: 3
Jon 2022년 8월 2일
편집: Jon 2022년 8월 2일
I am not familiar with the "pitch" function, and it does not seem to be in my MATLAB R2022A, or any of my toolboxes. Maybe you have the Audio Toolbox? I see looking online that there is a pitch function in that toolbox Assuming this is the function you are using and you have already defined the variable fs in your workspace, you could do something like:
f0_A = cellfun(@(x) pitch(x,fs),A)

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

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by