【问题标题】:Retaining handle matrix size upon deletion删除时保留句柄矩阵大小
【发布时间】:2011-10-22 07:25:49
【问题描述】:

我在图中创建了一组线条。线句柄占据由imline.empty(0,x) 创建的矩阵。当我删除某行(使用delete(.))时,矩阵的大小会发生变化。我想通过用空白空间(或其他任何东西)填充矩阵中的特定位置来避免这种情况,以保持数据结构化,并且矩阵大小相同。最好的方法是什么?

【问题讨论】:

    标签: matlab matrix size handle


    【解决方案1】:

    以我的previous answer 为基础,考虑这个例子:

    lines = imline.empty(0,10);
    for i=1:10
        lines(i) = imline(gca, rand(2,2));
    end
    

    现在说我们要删除第三行和最后一行:

    之前

    >> whos lines
      Name       Size            Bytes  Class     Attributes
    
      lines      1x10               96  imline   
    
    >> lines.isvalid
    ans =
         1     1     1     1     1     1     1     1     1     1
    

    之后

    >> delete( lines([3 end]) )
    
    >> whos lines
      Name       Size            Bytes  Class     Attributes
    
      lines      1x10               88  imline     
    
    >> lines.isvalid
    ans =
         1     1     0     1     1     1     1     1     1     0
    

    所以当delete-ing...时数组保持不变...

    如果您想真正从数组中删除它们的条目,请尝试:

    >> lines(~lines.isvalid) = [];
    >> size(lines)
    ans =
         1     8
    

    【讨论】:

      猜你喜欢
      • 2015-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-02
      • 1970-01-01
      • 2022-01-11
      • 2022-07-31
      相关资源
      最近更新 更多