【问题标题】:remove a line from my array using matlab [duplicate]使用matlab从我的数组中删除一行[重复]
【发布时间】:2013-12-14 23:56:13
【问题描述】:

我有一个由 2 行 3 列组成的数组 X(向量数组)。

 a1=[1 2 3]; 
 b1=[2 5 4];
 c1=[2 2 4];

 a2=[1 6 5];
 b2=[1 6 4];
 c2=[4 5 7];

 X= {a1,b1,c1 ; a2,b2,c2};

假设我从数组X 中选择第一行(a1, b1 and c1)

[m n]=size(X); % m=2 and n=3
selected_line = X(1, 1:n);

如何重写相同的X 但没有第一行?换句话说,我怎样才能从我的表中删除选定的行以获取数组{a2, b2, c2} 而不是上述X

【问题讨论】:

标签: arrays matlab


【解决方案1】:

通常,您可以删除矩阵或元胞数组中的行或列,或向量中的条目,方法是“分配”空矩阵(参见例如herehere)。因此,在您的情况下,要删除单元格数组 X 的第一行,请使用

X(1,:) = []; %// remove first row

另一种可能性是指定保留哪些行,而不是删除哪些行:

X = X(2:end,:); %// take from row 2 to last

【讨论】:

  • @Parag 这可能取决于您的 Matlab 版本和数组的大小......最好针对每个特定情况进行测试。在我的系统中,用原帖中的数据,第二个会快一点
  • 谢谢您的回复 :),, 是 x(1, :) = [] 还是 x(1,:)= {} ?
  • @chappjc 你有一台 24GB 内存的电脑 :P,反正很好的答案 :)
猜你喜欢
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 2012-12-06
  • 2012-03-25
  • 2014-03-23
  • 1970-01-01
相关资源
最近更新 更多