我有一个结构数组字段seg.startscan。 我想删除它的一些元素。matlab结构修改数组元素
例如与包含在数组INDS中的索引对应的元素。
以下是NY尝试和相对误差:
1)
seg.startscan(INDS)= [];
???这个任务需要标量结构。
2)
SEG(INDS).startscan = [];
???右侧输出不足以满足逗号 分隔 左侧列表展开。缺少[]是最有可能的原因。
3)
startscans = seg.startscan; startscans(INDS)= []; fldnm ='startscan'; seg。(fldnm)= startscans;
???右侧输出不足以满足逗号 分隔 左侧列表展开。缺少[]是最有可能的原因。
4)
startscans = seg.startscan; startscans(INDS)= []; fldnm ='startscan'; [seg。(fldnm)] = startscans;
???输出参数太多。 1:
5) 作为这里提出
>>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
请帮忙!
谢谢!
您无法擦除某些索引的字段。您可以删除由“INDS”指示的所有记录及其所有字段。 struct数组除了'startscan'还有更多的字段吗? –
是的。它也有一个seg.stopscan – shamalaia
你不能有'seg(1)'只有字段'startscan' _and_'seg(1)'带有'startscan'和'stopscan'字段。您需要删除'seg(1)'的所有字段。或填写空格:或者'seg(1).startscan = [];'或'[seg(IND).startscan] = deal([]) –