如何在MATLAB中使用cellfun评估多个参数并获得多个输出

时间:2014-06-25 17:25:25

标签: matlab

接下来的两个变量:

A={[];[1 2];[3]};
B={[10 20 30];[40 50 60];[70 80 90]};

我需要得到C1和C2,他们是:

C1={[];[40 50];[90]}; % Corresponding value B(A), like B{2,1}([1 2])=[40 50];
C2={[];[45];[90]}; % Mean, like for ex: mean(B{2,1}([1 2]))=mean([40 50])=45;

正如您所看到的,我需要使用 cellfun 制作一些东西,但我不知道如何评估两个或更多输入参数,并且有两个或更多输出。

像:

[C1,C2]=cellfun(@function,A,B)

我真的很感激任何信息,谢谢!

1 个答案:

答案 0 :(得分:0)

arrayfuncellfun很容易。首先计算C1,然后从该计算C2计算:

C1 = arrayfun(@(k) B{k}(A{k}), 1:size(A,1), 'UniformOutput', false);
C2 = cellfun(@mean, C1);