gpt4 book ai didi

matlab - arrayfun 当数组的每一行都是输入时

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:51 30 4
gpt4 key购买 nike

我的情况是,我想通过句柄为 fun 的函数映射一个标量数组 A,将一个行向量发送到一个行向量,以获取 B,这样 B(i,:) = fun(A(i,:))

我能想到的最合理的解决方案如下:

temp = mat2cell(A,ones(1,size(A,1)),size(A,2));
B = cell2mat(cellfun(fun,temp,'UniformOutput',0));

但是,转换为单元格和返回单元格似乎有点矫枉过正(并且可能计算量大)。我也不清楚为什么 cellfun 提示输出不均匀。想到更有效的方法了吗?

最佳答案

还有另一种使用 accumarray 的解决方案.虽然不像 bsxfun 那样花哨,但它不需要声明辅助函数:

subs = ndgrid(1:size(A, 1));
B = accumarray(subs(:), A(:), [], @fun); %// @fun is the function handle

关于matlab - arrayfun 当数组的每一行都是输入时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18199666/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com