如何删除结构的部分

时间:2018-03-22 15:32:05

标签: matlab structure

我有一个像空盒子的图片结构,我想获得没有这些空盒子的结构。

我不明白如何在不删除包含空框的行的全部行的情况下执行此操作。

例如:我认为Time_Left和Steps_Left的行10必须替换第6行的相应框

Structure

% Extraction of Right Steps
cpt = 1;
for i = 1 : length(Data)
    if Data.Insoles(i,3) > 0
        Steps(cpt).Time_Right(i) = Data(i,1); 
        Steps(cpt).Steps_Right(i) =  Data(i,3);
     end

    if Data(i,3)==0 && Data(i+1,3) > 0
        cpt = cpt +1;
    end
end


for j= 1: length(Steps.Insole)
     for k = size(Steps(j).Steps_Right,2):-1:1
         if Steps(j).Steps_Right(k) < Parameters.Threshold
            Steps(j).Steps_Right(k) = [];
            Steps(j).Time_Right(k) = [];
         end
     end
end

for f= length(Steps):-1:1
         if isempty([Steps(f).Steps_Right])
            Steps(f)=[];
         end
end


% Extraction of Left Steps
cpt = 1;
for i = 1 : length(Data)
    if Data(i,2) > 0
        Steps(cpt).Time_Left(i) = Data(i,1); 
        Steps(cpt).Steps_Left(i) =  Data(i,2);
     end

    if Data(i,2)==0 && Data(i+1,2) > 0
        cpt = cpt +1;
    end
end


for j= 1: length(Steps)
     for k = size(Steps(j).Steps_Left,2):-1:1
         if Steps(j).Steps_Left(k) < Parameters.Threshold
            Steps(j).Steps_Left(k) = [];
            Steps(j).Time_Left(k) = [];
         end
     end
end

for f= length(Steps):-1:1
         if isempty([Steps(f).Steps_Left])&&isempty([Steps(f).Steps_Right])
            Steps(f)=[];
         end
end

1 个答案:

答案 0 :(得分:1)

你不能做你想做的事。

您似乎有一个结构数组,并且在此数组中,每个结构必须具有相同的字段。

示例:

structure.a=1;
structure.b=2;
a(1)=structure;
structure.c=4;
a(2)=structure;

> "Subscripted assignment between dissimilar structures."

你唯一的选择就是拥有一个单元结构数组,但这是否是一个比空字段更好的选择,你只能回答(取决于你正在做什么) )。

你知道有一个函数isempty来检查数组是否为空,对吗?