gpt4 book ai didi

MATLAB:如何将 cellfun 与结构一起使用?

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

想象一个由相同结构(在布局方面)组成的元胞数组,如下例 cellArray 所示。如何将 cellfun 应用于这些结构的特定字段?

cellArray{1,1}.val1 = 10;
cellArray{1,1}.val2 = 20;
cellArray{1,2}.val1 = 1000;
cellArray{1,2}.val2 = 2000;

如何使用 cellfun 将值 50 添加到所有单元格,但仅添加到字段 val2

out = cellfun(@plus, cellArray?????, {50, 50}, 'UniformOutput', false);

最佳答案

您可以编写一个自定义函数add_val2(x, y),它将y添加到字段x.val2,并调用cellfun() 使用 @add_val2 而不是 @plus

首先,创建函数add_val2.m:

function x = add_val2(x, y)
x.val2 = x.val2 + y;
end

然后,调用cellfun()就很简单了

out = cellfun(@add_val2, cellArray, {50, 50}, 'UniformOutput', false);

结果是

>> out{1}
ans =
struct with fields:
val1: 10
val2: 70

>> out{2}
ans =
struct with fields:
val1: 1000
val2: 2050

关于MATLAB:如何将 cellfun 与结构一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48503215/

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