【发布时间】:2011-10-22 07:25:49
【问题描述】:
我在图中创建了一组线条。线句柄占据由imline.empty(0,x) 创建的矩阵。当我删除某行(使用delete(.))时,矩阵的大小会发生变化。我想通过用空白空间(或其他任何东西)填充矩阵中的特定位置来避免这种情况,以保持数据结构化,并且矩阵大小相同。最好的方法是什么?
【问题讨论】:
我在图中创建了一组线条。线句柄占据由imline.empty(0,x) 创建的矩阵。当我删除某行(使用delete(.))时,矩阵的大小会发生变化。我想通过用空白空间(或其他任何东西)填充矩阵中的特定位置来避免这种情况,以保持数据结构化,并且矩阵大小相同。最好的方法是什么?
【问题讨论】:
以我的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
【讨论】: