我有一个struct array字段seg.startscan。 我想删除它的一些元素。
例如,与存储的索引相对应的元素包含在数组INDS中。
以下是ny尝试和相对错误:
1)
seg.startscan(INDS)= [];
???此任务所需的标量结构。
2)
seg(INDS).startscan = [];
???右侧输出不足以满足逗号 分离 列表在左侧扩展。缺少[]是最有可能的 原因。
3)
startscans = seg.startscan; startcans(INDS)= []; fldnm ='startscan'; seg。(fldnm)= startscans;
???右侧输出不足以满足逗号 分离 列表在左侧扩展。缺少[]是最有可能的 原因。
4)
startscans = seg.startscan; startcans(INDS)= []; fldnm ='startscan'; [seg。(fldnm)] = startscans;
???输出参数太多。
5) 正如这里建议的那样:1:
>>startscans = seg.startscan;
startscans(INDS) = [ ];
fldnm = 'startscan';
[seg.(fldnm)] = startscans;
???输出参数太多。
你有什么想法吗? 可能我没有掌握结构数组背后的想法..
我们的输入是:
>>seg.startscan
ans=
1
ans=
2
ans=
3
ans=
4
>>INDS = [1 3];
然后我的预期输出是:
>>seg.startscan
ans=
2
ans=
4
这给出了一个非常相似的解决方案,但它没有矢量化而且不完全正确
>>for i = 1:numel(INDS)
seg(IND(i)).startscan=[];
end
>>seg.startscan
ans=
[]
ans=
2
ans=
[]
ans=
4
请帮忙!
谢谢!
答案 0 :(得分:2)
转换
seg.startscan = [1 2 3 4 5];
INDS = [1 3];
到
seg.startscan = [2 4 5];
你只需使用
seg.startscan(INDS) = [];