【发布时间】:2016-03-11 12:38:16
【问题描述】:
我在 Matlab 的 R 中寻找类似于 sapply 函数 的东西。 我有当前的问题:
我有一个大小为1000的大struct,里面的每一个都是一个struct,也就是我有一个struct of struct。
每一个substruct都是相同的样式,也就是相同的字段。
我正在使用一个函数对每个 substruct
做一些事情代码如下:
for i =1:length(mainStruct)
disp(i);
result(i) = myfunction(mainStruct(i).field(1:1000));
end
上面,myfunction只是一个函数,mainStruct是struct的结构,mainStruct(i) 正在访问每个 subStruct。
我尝试过 structfun,但它只适用于结构的字段名称,不适用于 struct of struct。
问题是如何摆脱这个循环?
【问题讨论】:
-
您要求矢量化,但这需要
myfunction已经矢量化。它接受矢量化输入吗?你能传递一个矩阵,它将每一行解释为一个向量吗? -
你试过把大结构变成数组吗?然后你可以做
mainStruct(:).field(1:1000)当然,正如丹尼尔指出的那样,你的函数必须被矢量化 -
@marcowassmer 我没听明白,你的意思是一个数组,数组中的每个元素都是一个结构体?
-
@Daniel myfunction 接受向量作为输入,例如 [1,2,3,4,5],单行。
-
@GeekCat,是的,这就是我的意思
标签: r matlab vectorization apply