如标题所述,我只想将结构的某些元素复制到一个新的结构中,其中所有复制的元素在一个字段中都有特定的值。
我有一个具有字段“ ID”,“方向”,“长度”,“宽度”的现有结构S。方向字段可以具有两个值:“ +”和“-”。我想创建一个具有所有'+'元素的新结构Sp和具有所有'-'元素的Sn。如果没有这样的for循环,是否有可能?
Sp = struct('ID', '', 'Direction', '', ...);
for ii=1:size(S,1)
if S(ii).Direction == '+'
Sp(end+1)=S(ii);
end
end
最终,我需要绘制一个长度和宽度的直方图,以区分+和-元素。如果没有额外的结构是可能的,我将不胜感激!
非常感谢您对我的帮助!
我认为这是您要寻找的:
S = struct('ID', {1, 2, 3, 4}, ...
'Direction', {'+', '+', '-', '-'}, ...
'Length', {1, 2, 3, 4}, ...
'Width', {1, 2, 3, 4});
S([S.Direction] == '+')
S([S.Direction] == '-')
要将其扩展到您的直方图问题,您可以执行以下操作:
Sp = S([S.Direction] == '+');
hist([Sp.Length], [Sp.Width]);
或者,如果您想在一行中完成所有操作(但是这可能会更慢,因为它执行了两次过滤):
hist([S([S.Direction] == '+').Length], [S([S.Direction] == '+').Width]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句