删除时保留句柄矩阵大小

时间:2011-08-08 11:03:25

标签: matlab matrix size handle

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

1 个答案:

答案 0 :(得分:2)

在我的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