我可以使用逻辑数组过滤器轻松填充数组的一部分。即以下适用于数组:
mydata=[2 2 2];
myfilter=[false true true true false false];
myarray(myfilter)=mydata;
我为结构数组尝试了以下操作,但它给出了错误。
mydata=[2 2 2];
myfilter=[false true true true false false];
[mystruct(myfilter).myval] = mydata;
如果我已经使用循环填充了我的struct数组,我可以使用相同的过滤器访问数据,如下所示:
mydata=[2 2 2];
myfilter=[false true true true false false];
pp=0;
for p=1:length(myfilter)
if myfilter(p)
pp=pp+1;
mystruct(p).myval = mydata(pp);
end
end
[mystruct(myfilter).myval]
所以我可以循环工作来加载数据,然后按预期检索数据,但是有一种矢量化的方式来填充结构数组的一部分吗?
答案 0 :(得分:0)
您可以按以下步骤操作:
mydata=[2 2 2];
myfilter=[false true true true false false];
myarray(myfilter) = mydata ;
% make structure
mystruct = struct('myval', num2cell(myarray));